/modules/apps/headless/headless-admin-taxonomy/headless-admin-taxonomy-client/src/main/java/com/liferay/headless/admin/taxonomy/client/serdes/v1_0/KeywordSerDes.java

https://github.com/vilmospapp/liferay-portal · Java · 405 lines · 297 code · 91 blank · 17 comment · 104 complexity · 37867ecda4ac29262d475d0dd81cb639 MD5 · raw file

  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or modify it under
  5. * the terms of the GNU Lesser General Public License as published by the Free
  6. * Software Foundation; either version 2.1 of the License, or (at your option)
  7. * any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  11. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  12. * details.
  13. */
  14. package com.liferay.headless.admin.taxonomy.client.serdes.v1_0;
  15. import com.liferay.headless.admin.taxonomy.client.dto.v1_0.Keyword;
  16. import com.liferay.headless.admin.taxonomy.client.json.BaseJSONParser;
  17. import java.text.DateFormat;
  18. import java.text.SimpleDateFormat;
  19. import java.util.Iterator;
  20. import java.util.Map;
  21. import java.util.Objects;
  22. import java.util.Set;
  23. import java.util.TreeMap;
  24. import javax.annotation.Generated;
  25. /**
  26. * @author Javier Gamarra
  27. * @generated
  28. */
  29. @Generated("")
  30. public class KeywordSerDes {
  31. public static Keyword toDTO(String json) {
  32. KeywordJSONParser keywordJSONParser = new KeywordJSONParser();
  33. return keywordJSONParser.parseToDTO(json);
  34. }
  35. public static Keyword[] toDTOs(String json) {
  36. KeywordJSONParser keywordJSONParser = new KeywordJSONParser();
  37. return keywordJSONParser.parseToDTOs(json);
  38. }
  39. public static String toJSON(Keyword keyword) {
  40. if (keyword == null) {
  41. return "null";
  42. }
  43. StringBuilder sb = new StringBuilder();
  44. sb.append("{");
  45. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  46. "yyyy-MM-dd'T'HH:mm:ss'Z'");
  47. if (keyword.getActions() != null) {
  48. if (sb.length() > 1) {
  49. sb.append(", ");
  50. }
  51. sb.append("\"actions\": ");
  52. sb.append(_toJSON(keyword.getActions()));
  53. }
  54. if (keyword.getAssetLibraryKey() != null) {
  55. if (sb.length() > 1) {
  56. sb.append(", ");
  57. }
  58. sb.append("\"assetLibraryKey\": ");
  59. sb.append("\"");
  60. sb.append(_escape(keyword.getAssetLibraryKey()));
  61. sb.append("\"");
  62. }
  63. if (keyword.getCreator() != null) {
  64. if (sb.length() > 1) {
  65. sb.append(", ");
  66. }
  67. sb.append("\"creator\": ");
  68. sb.append(String.valueOf(keyword.getCreator()));
  69. }
  70. if (keyword.getDateCreated() != null) {
  71. if (sb.length() > 1) {
  72. sb.append(", ");
  73. }
  74. sb.append("\"dateCreated\": ");
  75. sb.append("\"");
  76. sb.append(liferayToJSONDateFormat.format(keyword.getDateCreated()));
  77. sb.append("\"");
  78. }
  79. if (keyword.getDateModified() != null) {
  80. if (sb.length() > 1) {
  81. sb.append(", ");
  82. }
  83. sb.append("\"dateModified\": ");
  84. sb.append("\"");
  85. sb.append(
  86. liferayToJSONDateFormat.format(keyword.getDateModified()));
  87. sb.append("\"");
  88. }
  89. if (keyword.getId() != null) {
  90. if (sb.length() > 1) {
  91. sb.append(", ");
  92. }
  93. sb.append("\"id\": ");
  94. sb.append(keyword.getId());
  95. }
  96. if (keyword.getKeywordUsageCount() != null) {
  97. if (sb.length() > 1) {
  98. sb.append(", ");
  99. }
  100. sb.append("\"keywordUsageCount\": ");
  101. sb.append(keyword.getKeywordUsageCount());
  102. }
  103. if (keyword.getName() != null) {
  104. if (sb.length() > 1) {
  105. sb.append(", ");
  106. }
  107. sb.append("\"name\": ");
  108. sb.append("\"");
  109. sb.append(_escape(keyword.getName()));
  110. sb.append("\"");
  111. }
  112. if (keyword.getSiteId() != null) {
  113. if (sb.length() > 1) {
  114. sb.append(", ");
  115. }
  116. sb.append("\"siteId\": ");
  117. sb.append(keyword.getSiteId());
  118. }
  119. sb.append("}");
  120. return sb.toString();
  121. }
  122. public static Map<String, Object> toMap(String json) {
  123. KeywordJSONParser keywordJSONParser = new KeywordJSONParser();
  124. return keywordJSONParser.parseToMap(json);
  125. }
  126. public static Map<String, String> toMap(Keyword keyword) {
  127. if (keyword == null) {
  128. return null;
  129. }
  130. Map<String, String> map = new TreeMap<>();
  131. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  132. "yyyy-MM-dd'T'HH:mm:ss'Z'");
  133. if (keyword.getActions() == null) {
  134. map.put("actions", null);
  135. }
  136. else {
  137. map.put("actions", String.valueOf(keyword.getActions()));
  138. }
  139. if (keyword.getAssetLibraryKey() == null) {
  140. map.put("assetLibraryKey", null);
  141. }
  142. else {
  143. map.put(
  144. "assetLibraryKey",
  145. String.valueOf(keyword.getAssetLibraryKey()));
  146. }
  147. if (keyword.getCreator() == null) {
  148. map.put("creator", null);
  149. }
  150. else {
  151. map.put("creator", String.valueOf(keyword.getCreator()));
  152. }
  153. if (keyword.getDateCreated() == null) {
  154. map.put("dateCreated", null);
  155. }
  156. else {
  157. map.put(
  158. "dateCreated",
  159. liferayToJSONDateFormat.format(keyword.getDateCreated()));
  160. }
  161. if (keyword.getDateModified() == null) {
  162. map.put("dateModified", null);
  163. }
  164. else {
  165. map.put(
  166. "dateModified",
  167. liferayToJSONDateFormat.format(keyword.getDateModified()));
  168. }
  169. if (keyword.getId() == null) {
  170. map.put("id", null);
  171. }
  172. else {
  173. map.put("id", String.valueOf(keyword.getId()));
  174. }
  175. if (keyword.getKeywordUsageCount() == null) {
  176. map.put("keywordUsageCount", null);
  177. }
  178. else {
  179. map.put(
  180. "keywordUsageCount",
  181. String.valueOf(keyword.getKeywordUsageCount()));
  182. }
  183. if (keyword.getName() == null) {
  184. map.put("name", null);
  185. }
  186. else {
  187. map.put("name", String.valueOf(keyword.getName()));
  188. }
  189. if (keyword.getSiteId() == null) {
  190. map.put("siteId", null);
  191. }
  192. else {
  193. map.put("siteId", String.valueOf(keyword.getSiteId()));
  194. }
  195. return map;
  196. }
  197. public static class KeywordJSONParser extends BaseJSONParser<Keyword> {
  198. @Override
  199. protected Keyword createDTO() {
  200. return new Keyword();
  201. }
  202. @Override
  203. protected Keyword[] createDTOArray(int size) {
  204. return new Keyword[size];
  205. }
  206. @Override
  207. protected void setField(
  208. Keyword keyword, String jsonParserFieldName,
  209. Object jsonParserFieldValue) {
  210. if (Objects.equals(jsonParserFieldName, "actions")) {
  211. if (jsonParserFieldValue != null) {
  212. keyword.setActions(
  213. (Map)KeywordSerDes.toMap((String)jsonParserFieldValue));
  214. }
  215. }
  216. else if (Objects.equals(jsonParserFieldName, "assetLibraryKey")) {
  217. if (jsonParserFieldValue != null) {
  218. keyword.setAssetLibraryKey((String)jsonParserFieldValue);
  219. }
  220. }
  221. else if (Objects.equals(jsonParserFieldName, "creator")) {
  222. if (jsonParserFieldValue != null) {
  223. keyword.setCreator(
  224. CreatorSerDes.toDTO((String)jsonParserFieldValue));
  225. }
  226. }
  227. else if (Objects.equals(jsonParserFieldName, "dateCreated")) {
  228. if (jsonParserFieldValue != null) {
  229. keyword.setDateCreated(
  230. toDate((String)jsonParserFieldValue));
  231. }
  232. }
  233. else if (Objects.equals(jsonParserFieldName, "dateModified")) {
  234. if (jsonParserFieldValue != null) {
  235. keyword.setDateModified(
  236. toDate((String)jsonParserFieldValue));
  237. }
  238. }
  239. else if (Objects.equals(jsonParserFieldName, "id")) {
  240. if (jsonParserFieldValue != null) {
  241. keyword.setId(Long.valueOf((String)jsonParserFieldValue));
  242. }
  243. }
  244. else if (Objects.equals(jsonParserFieldName, "keywordUsageCount")) {
  245. if (jsonParserFieldValue != null) {
  246. keyword.setKeywordUsageCount(
  247. Integer.valueOf((String)jsonParserFieldValue));
  248. }
  249. }
  250. else if (Objects.equals(jsonParserFieldName, "name")) {
  251. if (jsonParserFieldValue != null) {
  252. keyword.setName((String)jsonParserFieldValue);
  253. }
  254. }
  255. else if (Objects.equals(jsonParserFieldName, "siteId")) {
  256. if (jsonParserFieldValue != null) {
  257. keyword.setSiteId(
  258. Long.valueOf((String)jsonParserFieldValue));
  259. }
  260. }
  261. }
  262. }
  263. private static String _escape(Object object) {
  264. String string = String.valueOf(object);
  265. for (String[] strings : BaseJSONParser.JSON_ESCAPE_STRINGS) {
  266. string = string.replace(strings[0], strings[1]);
  267. }
  268. return string;
  269. }
  270. private static String _toJSON(Map<String, ?> map) {
  271. StringBuilder sb = new StringBuilder("{");
  272. @SuppressWarnings("unchecked")
  273. Set set = map.entrySet();
  274. @SuppressWarnings("unchecked")
  275. Iterator<Map.Entry<String, ?>> iterator = set.iterator();
  276. while (iterator.hasNext()) {
  277. Map.Entry<String, ?> entry = iterator.next();
  278. sb.append("\"");
  279. sb.append(entry.getKey());
  280. sb.append("\": ");
  281. Object value = entry.getValue();
  282. Class<?> valueClass = value.getClass();
  283. if (value instanceof Map) {
  284. sb.append(_toJSON((Map)value));
  285. }
  286. else if (valueClass.isArray()) {
  287. Object[] values = (Object[])value;
  288. sb.append("[");
  289. for (int i = 0; i < values.length; i++) {
  290. sb.append("\"");
  291. sb.append(_escape(values[i]));
  292. sb.append("\"");
  293. if ((i + 1) < values.length) {
  294. sb.append(", ");
  295. }
  296. }
  297. sb.append("]");
  298. }
  299. else if (value instanceof String) {
  300. sb.append("\"");
  301. sb.append(_escape(entry.getValue()));
  302. sb.append("\"");
  303. }
  304. else {
  305. sb.append(String.valueOf(entry.getValue()));
  306. }
  307. if (iterator.hasNext()) {
  308. sb.append(", ");
  309. }
  310. }
  311. sb.append("}");
  312. return sb.toString();
  313. }
  314. }