Skip to content

Commit 9d05b55

Browse files
Update README.md
1 parent 241ab67 commit 9d05b55

File tree

1 file changed

+78
-41
lines changed

1 file changed

+78
-41
lines changed

README.md

Lines changed: 78 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This guide will help you get started with Contentstack Java Utils SDK to build a
77
### Prerequisites
88
- JDK 8 or later
99
- Contentstack account
10-
- Latest version of IntelliJ IDEA / Eclipse / VSCode
10+
- Latest version of IntelliJ IDEA / Eclipse / VSCode /
1111

1212
### SDK Installation and Setup
1313
To setup Utils SDK in your Java project, add the following dependency in the pom.xml file
@@ -16,7 +16,7 @@ To setup Utils SDK in your Java project, add the following dependency in the pom
1616
<dependency>
1717
<groupId>com.contentstack.sdk</groupId>
1818
<artifactId>util</artifactId>
19-
<version>1.0.0</version>
19+
<version>latest</version>
2020
</dependency>
2121
```
2222

@@ -27,7 +27,7 @@ If you are using Contentstack Java SDK, then the Utils SDK is already imported i
2727
<dependency>
2828
<groupId>com.contentstack.sdk</groupId>
2929
<artifactId>java</artifactId>
30-
<version>1.6.0</version> // version 1.6.0 or above
30+
<version>latest</version> // version 1.6.0 or above
3131
</dependency>
3232
```
3333

@@ -40,44 +40,54 @@ To render embedded items on the front-end, use the renderContents function, and
4040

4141
```java
4242

43-
Utils.renderContents(rteArray, localJsonObj, (embeddedObject, metadata) -> {
44-
45-
switch (metadata.getStyleType()) {
46-
// in case you have embedded items using “block” option in the RTE
47-
case BLOCK:
48-
String title = embeddedObject.getString("title");
49-
String multi_line = embeddedObject.getString("multi_line");
50-
return "<p>" + title + "</p><span>" + multi_line + "</span>";
51-
52-
// in case you have embedded items using “inline” option in the RTE
53-
case INLINE:
54-
String titleInline = embeddedObject.getString("title");
55-
String mlInline = embeddedObject.getString("multi_line");
56-
return "<p>" + titleInline + "</p><span>" + mlInline + "</span>";
57-
58-
// in case you have embedded items using “link” option in the RTE
59-
case LINKED:
60-
String titleLinked = embeddedObject.getString("title");
61-
String mlLinked = embeddedObject.getString("multi_line");
62-
return "<p>" + titleLinked + "</p><span>" + mlLinked + "</span>";
63-
64-
// in case you have embedded items using “display” option in the RTE
65-
case DISPLAY:
66-
String titleDiplayable = embeddedObject.getString("title");
67-
String mlDiplayable = embeddedObject.getString("multi_line");
68-
return "<p>" + titleDiplayable + "</p><span>" + mlDiplayable + "</span>";
69-
70-
// in case you have embedded items using “display” option in the RTE
71-
case DOWNLOAD:
72-
String titleDownload = embeddedObject.getString("title");
73-
String mlDownload = embeddedObject.getString("multi_line");
74-
return "<p>" + titleDiplayable + "</p><span>" + mlDownload + "</span>";
75-
76-
default:
77-
return null;
43+
package com.contentstack.utils;
44+
import com.contentstack.utils.helper.Metadata;
45+
import com.contentstack.utils.interfaces.NodeCallback;
46+
import com.contentstack.utils.interfaces.Option;
47+
import com.contentstack.utils.node.MarkType;
48+
import org.json.JSONObject;
49+
50+
public class DefaultOptionClass implements Option {
51+
52+
@Override
53+
public String renderOptions(JSONObject embeddedObject, Metadata metadata) {
54+
switch (metadata.getStyleType()) {
55+
case BLOCK:
56+
return "<p>" + embeddedObject.getString("title") + "</p><span>" +
57+
embeddedObject.getString("multi") + "</span>";
58+
case INLINE:
59+
return "<p>" + embeddedObject.getString("title") + "</p><span>" +
60+
embeddedObject.getString("line") + "</span>";
61+
case LINK:
62+
return "<p>" + embeddedObject.getString("title") + "</p><span>" +
63+
embeddedObject.getString("key") + "</span>";
64+
case DISPLAY:
65+
return "<p>" + embeddedObject.getString("someTitle") + "</p><span>" +
66+
embeddedObject.getString("multi") + "</span>";
67+
default:
68+
return null;
69+
}
7870
}
7971

80-
});
72+
@Override
73+
public String renderMark(MarkType markType, String renderText) {
74+
if (markType == MarkType.BOLD) {
75+
return "<b>" + renderText + "</b>";
76+
}
77+
return null;
78+
}
79+
80+
@Override
81+
public String renderNode(String nodeType, JSONObject nodeObject, NodeCallback callback) {
82+
if (nodeType.equalsIgnoreCase("paragraph")) {
83+
String children = callback.renderChildren(nodeObject.optJSONArray("children"));
84+
return "<p class='class-id'>" + children + "</p>";
85+
}
86+
87+
return null;
88+
}
89+
}
90+
8191
```
8292

8393

@@ -106,7 +116,7 @@ entry.fetch(new EntryResultCallBack() {
106116
JSONObject jsonObject = entry.toJSON();
107117
Utils.render(jsonObject, keyPath, new Option());
108118
} else {
109-
[Error block]
119+
[Error block] // handle your error
110120
}}
111121
});
112122
```
@@ -135,9 +145,36 @@ query.find(new QueryResultsCallBack() {
135145
Utils.render(jsonObject, keyPath, new Option());
136146
}
137147
}else{
138-
[Error block]
148+
[Error block] // handle your error
139149
}}
140150
});
141151
```
142152

153+
#### Render JSON RTE Contents
154+
To get multiple entries, you need to provide the stack API key, environment name, delivery token, content type and entry UID. Then, use the Contentstack.Utils.jsonToHTML function as shown below:
155+
156+
```java
157+
158+
import Contentstack
159+
Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment_name");
160+
Query query = stack.contentType("content_type_uid").query();
161+
query.includeEmbeddedItems(); // include embedded items
162+
query.find(new QueryResultsCallBack() {
163+
@Override
164+
public void onCompletion(ResponseType responseType, QueryResult queryResult, Error error) {
165+
if (error == null) {
166+
List<Entry> entries = queryresult.getResultObjects();
167+
String[] keyPath = {
168+
"rte_fieldUid", "group.rteFieldUID"
169+
};
170+
for (Entry entry : entries) {
171+
JSONObject jsonObject = entry.toJSON();
172+
Utils.jsonToHTML(jsonObject, keyPath, new Option());
173+
}
174+
}}
175+
});
176+
177+
```
178+
179+
143180

0 commit comments

Comments
 (0)