/modules/apps/headless/headless-admin-user/headless-admin-user-client/src/main/java/com/liferay/headless/admin/user/client/serdes/v1_0/RoleSerDes.java

https://github.com/danielreuther/liferay-portal · Java · 466 lines · 342 code · 107 blank · 17 comment · 126 complexity · b42c8dd66cc2b06cf195bca8472cd20d 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.user.client.serdes.v1_0;
  15. import com.liferay.headless.admin.user.client.dto.v1_0.Role;
  16. import com.liferay.headless.admin.user.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 RoleSerDes {
  31. public static Role toDTO(String json) {
  32. RoleJSONParser roleJSONParser = new RoleJSONParser();
  33. return roleJSONParser.parseToDTO(json);
  34. }
  35. public static Role[] toDTOs(String json) {
  36. RoleJSONParser roleJSONParser = new RoleJSONParser();
  37. return roleJSONParser.parseToDTOs(json);
  38. }
  39. public static String toJSON(Role role) {
  40. if (role == 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:ssXX");
  47. if (role.getActions() != null) {
  48. if (sb.length() > 1) {
  49. sb.append(", ");
  50. }
  51. sb.append("\"actions\": ");
  52. sb.append(_toJSON(role.getActions()));
  53. }
  54. if (role.getAvailableLanguages() != null) {
  55. if (sb.length() > 1) {
  56. sb.append(", ");
  57. }
  58. sb.append("\"availableLanguages\": ");
  59. sb.append("[");
  60. for (int i = 0; i < role.getAvailableLanguages().length; i++) {
  61. sb.append("\"");
  62. sb.append(_escape(role.getAvailableLanguages()[i]));
  63. sb.append("\"");
  64. if ((i + 1) < role.getAvailableLanguages().length) {
  65. sb.append(", ");
  66. }
  67. }
  68. sb.append("]");
  69. }
  70. if (role.getCreator() != null) {
  71. if (sb.length() > 1) {
  72. sb.append(", ");
  73. }
  74. sb.append("\"creator\": ");
  75. sb.append(String.valueOf(role.getCreator()));
  76. }
  77. if (role.getDateCreated() != null) {
  78. if (sb.length() > 1) {
  79. sb.append(", ");
  80. }
  81. sb.append("\"dateCreated\": ");
  82. sb.append("\"");
  83. sb.append(liferayToJSONDateFormat.format(role.getDateCreated()));
  84. sb.append("\"");
  85. }
  86. if (role.getDateModified() != null) {
  87. if (sb.length() > 1) {
  88. sb.append(", ");
  89. }
  90. sb.append("\"dateModified\": ");
  91. sb.append("\"");
  92. sb.append(liferayToJSONDateFormat.format(role.getDateModified()));
  93. sb.append("\"");
  94. }
  95. if (role.getDescription() != null) {
  96. if (sb.length() > 1) {
  97. sb.append(", ");
  98. }
  99. sb.append("\"description\": ");
  100. sb.append("\"");
  101. sb.append(_escape(role.getDescription()));
  102. sb.append("\"");
  103. }
  104. if (role.getDescription_i18n() != null) {
  105. if (sb.length() > 1) {
  106. sb.append(", ");
  107. }
  108. sb.append("\"description_i18n\": ");
  109. sb.append(_toJSON(role.getDescription_i18n()));
  110. }
  111. if (role.getId() != null) {
  112. if (sb.length() > 1) {
  113. sb.append(", ");
  114. }
  115. sb.append("\"id\": ");
  116. sb.append(role.getId());
  117. }
  118. if (role.getName() != null) {
  119. if (sb.length() > 1) {
  120. sb.append(", ");
  121. }
  122. sb.append("\"name\": ");
  123. sb.append("\"");
  124. sb.append(_escape(role.getName()));
  125. sb.append("\"");
  126. }
  127. if (role.getName_i18n() != null) {
  128. if (sb.length() > 1) {
  129. sb.append(", ");
  130. }
  131. sb.append("\"name_i18n\": ");
  132. sb.append(_toJSON(role.getName_i18n()));
  133. }
  134. if (role.getRoleType() != null) {
  135. if (sb.length() > 1) {
  136. sb.append(", ");
  137. }
  138. sb.append("\"roleType\": ");
  139. sb.append("\"");
  140. sb.append(_escape(role.getRoleType()));
  141. sb.append("\"");
  142. }
  143. sb.append("}");
  144. return sb.toString();
  145. }
  146. public static Map<String, Object> toMap(String json) {
  147. RoleJSONParser roleJSONParser = new RoleJSONParser();
  148. return roleJSONParser.parseToMap(json);
  149. }
  150. public static Map<String, String> toMap(Role role) {
  151. if (role == null) {
  152. return null;
  153. }
  154. Map<String, String> map = new TreeMap<>();
  155. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  156. "yyyy-MM-dd'T'HH:mm:ssXX");
  157. if (role.getActions() == null) {
  158. map.put("actions", null);
  159. }
  160. else {
  161. map.put("actions", String.valueOf(role.getActions()));
  162. }
  163. if (role.getAvailableLanguages() == null) {
  164. map.put("availableLanguages", null);
  165. }
  166. else {
  167. map.put(
  168. "availableLanguages",
  169. String.valueOf(role.getAvailableLanguages()));
  170. }
  171. if (role.getCreator() == null) {
  172. map.put("creator", null);
  173. }
  174. else {
  175. map.put("creator", String.valueOf(role.getCreator()));
  176. }
  177. if (role.getDateCreated() == null) {
  178. map.put("dateCreated", null);
  179. }
  180. else {
  181. map.put(
  182. "dateCreated",
  183. liferayToJSONDateFormat.format(role.getDateCreated()));
  184. }
  185. if (role.getDateModified() == null) {
  186. map.put("dateModified", null);
  187. }
  188. else {
  189. map.put(
  190. "dateModified",
  191. liferayToJSONDateFormat.format(role.getDateModified()));
  192. }
  193. if (role.getDescription() == null) {
  194. map.put("description", null);
  195. }
  196. else {
  197. map.put("description", String.valueOf(role.getDescription()));
  198. }
  199. if (role.getDescription_i18n() == null) {
  200. map.put("description_i18n", null);
  201. }
  202. else {
  203. map.put(
  204. "description_i18n", String.valueOf(role.getDescription_i18n()));
  205. }
  206. if (role.getId() == null) {
  207. map.put("id", null);
  208. }
  209. else {
  210. map.put("id", String.valueOf(role.getId()));
  211. }
  212. if (role.getName() == null) {
  213. map.put("name", null);
  214. }
  215. else {
  216. map.put("name", String.valueOf(role.getName()));
  217. }
  218. if (role.getName_i18n() == null) {
  219. map.put("name_i18n", null);
  220. }
  221. else {
  222. map.put("name_i18n", String.valueOf(role.getName_i18n()));
  223. }
  224. if (role.getRoleType() == null) {
  225. map.put("roleType", null);
  226. }
  227. else {
  228. map.put("roleType", String.valueOf(role.getRoleType()));
  229. }
  230. return map;
  231. }
  232. public static class RoleJSONParser extends BaseJSONParser<Role> {
  233. @Override
  234. protected Role createDTO() {
  235. return new Role();
  236. }
  237. @Override
  238. protected Role[] createDTOArray(int size) {
  239. return new Role[size];
  240. }
  241. @Override
  242. protected void setField(
  243. Role role, String jsonParserFieldName,
  244. Object jsonParserFieldValue) {
  245. if (Objects.equals(jsonParserFieldName, "actions")) {
  246. if (jsonParserFieldValue != null) {
  247. role.setActions(
  248. (Map)RoleSerDes.toMap((String)jsonParserFieldValue));
  249. }
  250. }
  251. else if (Objects.equals(
  252. jsonParserFieldName, "availableLanguages")) {
  253. if (jsonParserFieldValue != null) {
  254. role.setAvailableLanguages(
  255. toStrings((Object[])jsonParserFieldValue));
  256. }
  257. }
  258. else if (Objects.equals(jsonParserFieldName, "creator")) {
  259. if (jsonParserFieldValue != null) {
  260. role.setCreator(
  261. CreatorSerDes.toDTO((String)jsonParserFieldValue));
  262. }
  263. }
  264. else if (Objects.equals(jsonParserFieldName, "dateCreated")) {
  265. if (jsonParserFieldValue != null) {
  266. role.setDateCreated(toDate((String)jsonParserFieldValue));
  267. }
  268. }
  269. else if (Objects.equals(jsonParserFieldName, "dateModified")) {
  270. if (jsonParserFieldValue != null) {
  271. role.setDateModified(toDate((String)jsonParserFieldValue));
  272. }
  273. }
  274. else if (Objects.equals(jsonParserFieldName, "description")) {
  275. if (jsonParserFieldValue != null) {
  276. role.setDescription((String)jsonParserFieldValue);
  277. }
  278. }
  279. else if (Objects.equals(jsonParserFieldName, "description_i18n")) {
  280. if (jsonParserFieldValue != null) {
  281. role.setDescription_i18n(
  282. (Map)RoleSerDes.toMap((String)jsonParserFieldValue));
  283. }
  284. }
  285. else if (Objects.equals(jsonParserFieldName, "id")) {
  286. if (jsonParserFieldValue != null) {
  287. role.setId(Long.valueOf((String)jsonParserFieldValue));
  288. }
  289. }
  290. else if (Objects.equals(jsonParserFieldName, "name")) {
  291. if (jsonParserFieldValue != null) {
  292. role.setName((String)jsonParserFieldValue);
  293. }
  294. }
  295. else if (Objects.equals(jsonParserFieldName, "name_i18n")) {
  296. if (jsonParserFieldValue != null) {
  297. role.setName_i18n(
  298. (Map)RoleSerDes.toMap((String)jsonParserFieldValue));
  299. }
  300. }
  301. else if (Objects.equals(jsonParserFieldName, "roleType")) {
  302. if (jsonParserFieldValue != null) {
  303. role.setRoleType((String)jsonParserFieldValue);
  304. }
  305. }
  306. }
  307. }
  308. private static String _escape(Object object) {
  309. String string = String.valueOf(object);
  310. for (String[] strings : BaseJSONParser.JSON_ESCAPE_STRINGS) {
  311. string = string.replace(strings[0], strings[1]);
  312. }
  313. return string;
  314. }
  315. private static String _toJSON(Map<String, ?> map) {
  316. StringBuilder sb = new StringBuilder("{");
  317. @SuppressWarnings("unchecked")
  318. Set set = map.entrySet();
  319. @SuppressWarnings("unchecked")
  320. Iterator<Map.Entry<String, ?>> iterator = set.iterator();
  321. while (iterator.hasNext()) {
  322. Map.Entry<String, ?> entry = iterator.next();
  323. sb.append("\"");
  324. sb.append(entry.getKey());
  325. sb.append("\": ");
  326. Object value = entry.getValue();
  327. Class<?> valueClass = value.getClass();
  328. if (value instanceof Map) {
  329. sb.append(_toJSON((Map)value));
  330. }
  331. else if (valueClass.isArray()) {
  332. Object[] values = (Object[])value;
  333. sb.append("[");
  334. for (int i = 0; i < values.length; i++) {
  335. sb.append("\"");
  336. sb.append(_escape(values[i]));
  337. sb.append("\"");
  338. if ((i + 1) < values.length) {
  339. sb.append(", ");
  340. }
  341. }
  342. sb.append("]");
  343. }
  344. else if (value instanceof String) {
  345. sb.append("\"");
  346. sb.append(_escape(entry.getValue()));
  347. sb.append("\"");
  348. }
  349. else {
  350. sb.append(String.valueOf(entry.getValue()));
  351. }
  352. if (iterator.hasNext()) {
  353. sb.append(", ");
  354. }
  355. }
  356. sb.append("}");
  357. return sb.toString();
  358. }
  359. }