Skip to content

Commit 8127ba1

Browse files
shaileshmishrashaileshmishra
authored andcommitted
🎉 v1.0.0 release
1 parent 363a38e commit 8127ba1

File tree

11 files changed

+57
-67
lines changed

11 files changed

+57
-67
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@
205205
Sometimes when you may need to compile a certain project to a different
206206
version than what you are currently using. The javac can accept such command
207207
using -source and -target. The Compiler Plugin can also be configured to
208-
provide these optionsCallback during compilation
208+
provide these option during compilation
209209
-->
210210

211211
<!--Provides support to access staging functionality in a remote Nexus Professional server.-->

src/main/java/com/contentstack/utils/Utils.java

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package com.contentstack.utils;
22

3-
import com.contentstack.utils.callbacks.ContentCallback;
4-
import com.contentstack.utils.callbacks.MetadataCallback;
5-
import com.contentstack.utils.callbacks.OptionsCallback;
6-
import com.contentstack.utils.helper.Metadata;
7-
import com.contentstack.utils.render.DefaultOptionsCallback;
3+
import com.contentstack.utils.callbacks.Content;
4+
import com.contentstack.utils.callbacks.Metadata;
5+
import com.contentstack.utils.callbacks.Option;
6+
import com.contentstack.utils.render.DefaultOption;
87
import org.json.JSONArray;
98
import org.json.JSONObject;
109
import org.jsoup.Jsoup;
@@ -21,8 +20,8 @@ public class Utils {
2120
* @param keyPath keyPath
2221
* @param renderObject renderObject
2322
*/
24-
public static void render(JSONObject entryObj, String[] keyPath, OptionsCallback renderObject){
25-
ContentCallback callback = content -> {
23+
public static void render(JSONObject entryObj, String[] keyPath, Option renderObject){
24+
Content callback = content -> {
2625
if (content instanceof JSONArray) {
2726
JSONArray contentArray = (JSONArray) content;
2827
return renderContents(contentArray, entryObj, renderObject);
@@ -54,37 +53,37 @@ public static void render(JSONObject entryObj, String[] keyPath, OptionsCallbac
5453
* Find dot separated keys
5554
* @param entryObj Json Object
5655
* @param path keyPath
57-
* @param contentCallback content callback
56+
* @param content content callback
5857
*/
59-
private static void findContent(JSONObject entryObj, String path, ContentCallback contentCallback ) {
58+
private static void findContent(JSONObject entryObj, String path, Content content) {
6059
String [] arrayString = path.split("\\.");
61-
getContent(arrayString, entryObj, contentCallback);
60+
getContent(arrayString, entryObj, content);
6261
}
6362

6463
/**
6564
*
6665
* @param arrayString list of keys available
6766
* @param entryObj entry object
68-
* @param contentCallback content callback
67+
* @param content content callback
6968
*/
70-
private static void getContent(String[] arrayString, JSONObject entryObj, ContentCallback contentCallback) {
69+
private static void getContent(String[] arrayString, JSONObject entryObj, Content content) {
7170
if (arrayString!=null && arrayString.length!=0){
7271
String key = arrayString[0];
7372
if (arrayString.length == 1) {
7473
Object varContent = entryObj.opt(key);
7574
if (varContent instanceof String || varContent instanceof JSONArray) {
76-
entryObj.put(key, contentCallback.contentObject(varContent));
75+
entryObj.put(key, content.contentObject(varContent));
7776
}
7877
} else {
7978
List<String> list = new ArrayList<>(Arrays.asList(arrayString));
8079
list.remove(key);
8180
String[] newArrayString = list.toArray(new String[0]);
8281
if (entryObj.opt(key) instanceof JSONObject) {
83-
getContent(newArrayString, entryObj.optJSONObject(key), contentCallback);
82+
getContent(newArrayString, entryObj.optJSONObject(key), content);
8483
} else if (entryObj.opt(key) instanceof JSONArray) {
8584
JSONArray jsonArray = entryObj.optJSONArray(key);
8685
for (int idx = 0; idx < jsonArray.length(); idx++) {
87-
getContent(newArrayString, jsonArray.optJSONObject(idx), contentCallback);
86+
getContent(newArrayString, jsonArray.optJSONObject(idx), content);
8887
}
8988
}
9089
}
@@ -98,18 +97,18 @@ private static void getContent(String[] arrayString, JSONObject entryObj, Conten
9897
* @param keyPath String array keyPath
9998
* @param renderObject renderObjects
10099
*/
101-
public void render(JSONArray jsonArray, String[] keyPath, OptionsCallback renderObject){
100+
public void render(JSONArray jsonArray, String[] keyPath, Option renderObject){
102101
jsonArray.forEach(jsonObj-> render((JSONObject) jsonObj, keyPath, renderObject));
103102
}
104103

105104
/**
106105
* Accepts to render content on the basis of below content
107106
* @param rteStringify String of the rte available for the embedding
108107
* @param embedObject JSONObject to get the _embedded_object (_embedded_entries/_embedded_assets)
109-
* @param optionsCallback Options take takes input as (StyleType type, JSONObject embeddedObject)
108+
* @param option Options take takes input as (StyleType type, JSONObject embeddedObject)
110109
* @return String of rte with replaced tag
111110
*/
112-
public static String renderContent(String rteStringify, JSONObject embedObject, OptionsCallback optionsCallback) {
111+
public static String renderContent(String rteStringify, JSONObject embedObject, Option option) {
113112
final String[] sReplaceRTE = {rteStringify};
114113
Document html = Jsoup.parse(rteStringify);
115114
getEmbeddedObjects(html, metadata -> {
@@ -121,7 +120,7 @@ public static String renderContent(String rteStringify, JSONObject embedObject,
121120
}
122121
if (filteredContent.isPresent()) {
123122
JSONObject contentToPass = filteredContent.get();
124-
String stringOption = getStringOption(optionsCallback, metadata, contentToPass);
123+
String stringOption = getStringOption(option, metadata, contentToPass);
125124
sReplaceRTE[0] = html.body().html().replace(metadata.getOuterHTML(), stringOption);
126125
}
127126
});
@@ -133,14 +132,14 @@ public static String renderContent(String rteStringify, JSONObject embedObject,
133132
* Take below items to return updated string
134133
* @param rteArray JSONArray of the rte available for the embedding
135134
* @param entryObject JSONObject to get the _embedded_object (_embedded_entries/_embedded_assets)
136-
* @param optionsCallback Options take takes input as (StyleType type, JSONObject embeddedObject)
135+
* @param option Options take takes input as (StyleType type, JSONObject embeddedObject)
137136
* @return String of rte with replaced tag
138137
*/
139-
public static JSONArray renderContents(JSONArray rteArray, JSONObject entryObject, OptionsCallback optionsCallback) {
138+
public static JSONArray renderContents(JSONArray rteArray, JSONObject entryObject, Option option) {
140139
JSONArray jsonArrayRTEContent = new JSONArray();
141140
for (Object RTE : rteArray) {
142141
String stringify = (String) RTE;
143-
String renderContent = renderContent(stringify, entryObject, optionsCallback);
142+
String renderContent = renderContent(stringify, entryObject, option);
144143
jsonArrayRTEContent.put(renderContent);
145144
}
146145
return jsonArrayRTEContent;
@@ -153,7 +152,7 @@ public static JSONArray renderContents(JSONArray rteArray, JSONObject entryObjec
153152
* @param metadata EmbeddedObject: contains the model class information
154153
* @return Optional<JSONObject>
155154
*/
156-
private static Optional<JSONObject> findEmbeddedItems(JSONObject jsonObject, Metadata metadata) {
155+
private static Optional<JSONObject> findEmbeddedItems(JSONObject jsonObject, com.contentstack.utils.helper.Metadata metadata) {
157156
Set<String> allKeys = jsonObject.keySet();
158157
for (String key: allKeys) {
159158
JSONArray jsonArray = jsonObject.optJSONArray(key);
@@ -167,17 +166,17 @@ private static Optional<JSONObject> findEmbeddedItems(JSONObject jsonObject, Met
167166
return Optional.empty();
168167
}
169168

170-
private static String getStringOption(OptionsCallback optionsCallback, Metadata metadata, JSONObject contentToPass) {
171-
String stringOption = optionsCallback.renderOptions(contentToPass, metadata);
169+
private static String getStringOption(Option option, com.contentstack.utils.helper.Metadata metadata, JSONObject contentToPass) {
170+
String stringOption = option.renderOptions(contentToPass, metadata);
172171
if (stringOption == null) {
173-
DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
172+
DefaultOption defaultOptions = new DefaultOption();
174173
stringOption = defaultOptions.renderOptions(contentToPass, metadata);
175174
}
176175
return stringOption;
177176
}
178177

179178

180-
private static void getEmbeddedObjects(Document html, MetadataCallback metadataCallback) {
179+
private static void getEmbeddedObjects(Document html, Metadata metadataCallback) {
181180
Elements embeddedEntries = html.body().getElementsByClass("embedded-entry");
182181
Elements embeddedAssets = html.body().getElementsByClass("embedded-asset");
183182
embeddedEntries.forEach((entry) -> {
@@ -187,7 +186,7 @@ private static void getEmbeddedObjects(Document html, MetadataCallback metadataC
187186
String contentType = entry.attr("data-sys-content-type-uid");
188187
String style = entry.attr("sys-style-type");
189188
String outerHTML = entry.outerHtml();
190-
Metadata metadata = new Metadata(text, type, uid, contentType, style, outerHTML, entry.attributes());
189+
com.contentstack.utils.helper.Metadata metadata = new com.contentstack.utils.helper.Metadata(text, type, uid, contentType, style, outerHTML, entry.attributes());
191190
metadataCallback.embeddedObject(metadata);
192191
});
193192

@@ -197,7 +196,7 @@ private static void getEmbeddedObjects(Document html, MetadataCallback metadataC
197196
String uid = asset.attr("data-sys-asset-uid");
198197
String style = asset.attr("sys-style-type");
199198
String outerHTML = asset.outerHtml();
200-
Metadata metadata = new Metadata(text, type, uid, "asset", style, outerHTML, asset.attributes());
199+
com.contentstack.utils.helper.Metadata metadata = new com.contentstack.utils.helper.Metadata(text, type, uid, "asset", style, outerHTML, asset.attributes());
201200
metadataCallback.embeddedObject(metadata);
202201
});
203202
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.contentstack.utils.callbacks;
2+
3+
/**
4+
* ContentCallback
5+
*/
6+
public interface Content { Object contentObject(Object content); }

src/main/java/com/contentstack/utils/callbacks/ContentCallback.java

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.contentstack.utils.callbacks;
2+
3+
4+
/**
5+
* MetadataCallback
6+
*/
7+
public interface Metadata { void embeddedObject(com.contentstack.utils.helper.Metadata metadata); }

src/main/java/com/contentstack/utils/callbacks/MetadataCallback.java

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/main/java/com/contentstack/utils/render/DefaultOptionsCallback.java renamed to src/main/java/com/contentstack/utils/render/DefaultOption.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.contentstack.utils.render;
2-
import com.contentstack.utils.callbacks.OptionsCallback;
2+
import com.contentstack.utils.callbacks.Option;
33
import com.contentstack.utils.helper.Metadata;
44
import org.json.JSONObject;
55

66
/**
77
* DefaultOptionsCallback
88
*/
9-
public class DefaultOptionsCallback implements OptionsCallback {
9+
public class DefaultOption implements Option {
1010

1111
/**
1212
* Accepts below params to provides defaults options

src/test/java/DefaultOptionsCallbackTests.java renamed to src/test/java/DefaultOptionTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import com.contentstack.utils.helper.Metadata;
2-
import com.contentstack.utils.render.DefaultOptionsCallback;
2+
import com.contentstack.utils.render.DefaultOption;
33
import org.json.JSONObject;
44
import org.jsoup.nodes.Attributes;
55
import org.junit.Assert;
@@ -13,7 +13,7 @@
1313
import java.util.logging.Logger;
1414

1515
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
16-
public class DefaultOptionsCallbackTests {
16+
public class DefaultOptionTests {
1717

1818
private static final Logger logger = Logger.getLogger(UtilTests.class.getName());
1919
private static JSONObject localJsonObj;
@@ -35,7 +35,7 @@ public void test_01_test_attributes() {
3535
public void test_02_renderOptions() {
3636
Attributes attributes = new ReadResource().returnEntryAttributes(localJsonObj);
3737
Assert.assertEquals("entry", attributes.get("type").toLowerCase());
38-
final DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
38+
final DefaultOption defaultOptions = new DefaultOption();
3939
Metadata metadata = new Metadata("TextTest", "entry", "blt6723673", "content_type_uid", "block","outerHTMLTet", attributes);
4040
String result = defaultOptions.renderOptions(localJsonObj.optJSONObject("_embedded_items"), metadata);
4141
Assert.assertEquals("<div><p></p><div><p>Content type: <span></span></p></div>", result);
@@ -45,7 +45,7 @@ public void test_02_renderOptions() {
4545
@Test
4646
public void test_03_defaultOptions() {
4747
Attributes attributes = new ReadResource().returnEntryAttributes(localJsonObj);
48-
final DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
48+
final DefaultOption defaultOptions = new DefaultOption();
4949
Metadata metadata = new Metadata("TextTest", "entry", "blt6723673", "content_type_uid", "block","outerHTMLTet", attributes);
5050
String result = defaultOptions.renderOptions(localJsonObj.optJSONObject("_embedded_items"), metadata);
5151
Assert.assertEquals("<div><p></p><div><p>Content type: <span></span></p></div>", result);
@@ -55,7 +55,7 @@ public void test_03_defaultOptions() {
5555
@Test
5656
public void test_04_entryInline() {
5757
Attributes attributes = new ReadResource().returnEntryAttributes(localJsonObj);
58-
final DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
58+
final DefaultOption defaultOptions = new DefaultOption();
5959
Metadata metadata = new Metadata("TextTest", "entry", "blt6723673", "content_type_uid", "inline","outerHTMLTet", attributes);
6060
String result = defaultOptions.renderOptions(localJsonObj.optJSONObject("_embedded_items"), metadata);
6161
Assert.assertEquals("<span></span>", result);
@@ -65,7 +65,7 @@ public void test_04_entryInline() {
6565
@Test
6666
public void test_05_embeddedLink() {
6767
Attributes attributes = new ReadResource().returnEntryAttributes(localJsonObj);
68-
final DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
68+
final DefaultOption defaultOptions = new DefaultOption();
6969
Metadata metadata = new Metadata("TextTest", "entry", "blt6723673", "content_type_uid", "link","outerHTMLTet", attributes);
7070
String result = defaultOptions.renderOptions(localJsonObj.optJSONObject("_embedded_items"), metadata);
7171
Assert.assertEquals("<a href=\"\"></a>", result);
@@ -74,7 +74,7 @@ public void test_05_embeddedLink() {
7474
@Test
7575
public void test_embedded_default_displayable() {
7676
Attributes attributes = new ReadResource().returnEntryAttributes(localJsonObj);
77-
final DefaultOptionsCallback defaultOptions = new DefaultOptionsCallback();
77+
final DefaultOption defaultOptions = new DefaultOption();
7878
Metadata metadata = new Metadata("TextTest", "entry", "blt6723673", "content_type_uid", "display","outerHTMLTet", attributes);
7979
String result = defaultOptions.renderOptions(localJsonObj.optJSONObject("_embedded_items"), metadata);
8080
Assert.assertEquals("<img src=\"\" alt=\"\" />", result);

src/test/java/EmbeddedModelTests.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import com.contentstack.utils.helper.Metadata;
2-
import org.json.JSONArray;
31
import org.json.JSONObject;
4-
import org.jsoup.Jsoup;
5-
import org.jsoup.nodes.Document;
6-
import org.jsoup.select.Elements;
72
import org.junit.Assert;
83
import org.junit.BeforeClass;
94
import org.junit.FixMethodOrder;

src/test/java/TestRender.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
import com.contentstack.utils.Utils;
2-
import com.contentstack.utils.embedded.ItemType;
31
import org.json.JSONObject;
4-
import org.junit.Assert;
52
import org.junit.BeforeClass;
63
import org.junit.FixMethodOrder;
74
import org.junit.Test;

0 commit comments

Comments
 (0)