]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.lib.json/src/org/argeo/cms/acr/json/AcrJsonUtils.java
Introduce CMS JSon
[lgpl/argeo-commons.git] / org.argeo.cms.lib.json / src / org / argeo / cms / acr / json / AcrJsonUtils.java
1 package org.argeo.cms.acr.json;
2
3 import javax.xml.namespace.QName;
4
5 import org.argeo.api.acr.Content;
6 import org.argeo.api.acr.NamespaceUtils;
7 import org.argeo.api.acr.QNamed;
8
9 import jakarta.json.stream.JsonGenerator;
10
11 /** Utilities around ACR and the JSON format. */
12 public class AcrJsonUtils {
13 public static void writeAttr(JsonGenerator g, Content content, String attr) {
14 writeAttr(g, content, NamespaceUtils.parsePrefixedName(attr));
15 }
16
17 public static void writeAttr(JsonGenerator g, Content content, QNamed attr) {
18 writeAttr(g, content, attr.qName());
19 }
20
21 public static void writeAttr(JsonGenerator g, Content content, QName attr) {
22 // String value = content.attr(attr);
23 Object value = content.get(attr);
24 if (value != null) {
25 // TODO specify NamespaceContext
26 String key = NamespaceUtils.toPrefixedName(attr);
27 if (value instanceof Double v)
28 g.write(key, v);
29 else if (value instanceof Long v)
30 g.write(key, v);
31 else if (value instanceof Integer v)
32 g.write(key, v);
33 else if (value instanceof Boolean v)
34 g.write(key, v);
35 else
36 g.write(key, value.toString());
37 }
38 }
39
40 /** singleton */
41 private AcrJsonUtils() {
42 }
43 }