/modules/apps/headless/headless-delivery/headless-delivery-client/src/main/java/com/liferay/headless/delivery/client/serdes/v1_0/MessageBoardMessageSerDes.java

https://github.com/danielreuther/liferay-portal · Java · 940 lines · 734 code · 189 blank · 17 comment · 280 complexity · 7d27ba699215d8b924bf06cb1028840a 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.delivery.client.serdes.v1_0;
  15. import com.liferay.headless.delivery.client.dto.v1_0.CustomField;
  16. import com.liferay.headless.delivery.client.dto.v1_0.MessageBoardMessage;
  17. import com.liferay.headless.delivery.client.dto.v1_0.RelatedContent;
  18. import com.liferay.headless.delivery.client.json.BaseJSONParser;
  19. import java.text.DateFormat;
  20. import java.text.SimpleDateFormat;
  21. import java.util.Iterator;
  22. import java.util.Map;
  23. import java.util.Objects;
  24. import java.util.Set;
  25. import java.util.TreeMap;
  26. import java.util.stream.Stream;
  27. import javax.annotation.Generated;
  28. /**
  29. * @author Javier Gamarra
  30. * @generated
  31. */
  32. @Generated("")
  33. public class MessageBoardMessageSerDes {
  34. public static MessageBoardMessage toDTO(String json) {
  35. MessageBoardMessageJSONParser messageBoardMessageJSONParser =
  36. new MessageBoardMessageJSONParser();
  37. return messageBoardMessageJSONParser.parseToDTO(json);
  38. }
  39. public static MessageBoardMessage[] toDTOs(String json) {
  40. MessageBoardMessageJSONParser messageBoardMessageJSONParser =
  41. new MessageBoardMessageJSONParser();
  42. return messageBoardMessageJSONParser.parseToDTOs(json);
  43. }
  44. public static String toJSON(MessageBoardMessage messageBoardMessage) {
  45. if (messageBoardMessage == null) {
  46. return "null";
  47. }
  48. StringBuilder sb = new StringBuilder();
  49. sb.append("{");
  50. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  51. "yyyy-MM-dd'T'HH:mm:ssXX");
  52. if (messageBoardMessage.getActions() != null) {
  53. if (sb.length() > 1) {
  54. sb.append(", ");
  55. }
  56. sb.append("\"actions\": ");
  57. sb.append(_toJSON(messageBoardMessage.getActions()));
  58. }
  59. if (messageBoardMessage.getAggregateRating() != null) {
  60. if (sb.length() > 1) {
  61. sb.append(", ");
  62. }
  63. sb.append("\"aggregateRating\": ");
  64. sb.append(String.valueOf(messageBoardMessage.getAggregateRating()));
  65. }
  66. if (messageBoardMessage.getAnonymous() != null) {
  67. if (sb.length() > 1) {
  68. sb.append(", ");
  69. }
  70. sb.append("\"anonymous\": ");
  71. sb.append(messageBoardMessage.getAnonymous());
  72. }
  73. if (messageBoardMessage.getArticleBody() != null) {
  74. if (sb.length() > 1) {
  75. sb.append(", ");
  76. }
  77. sb.append("\"articleBody\": ");
  78. sb.append("\"");
  79. sb.append(_escape(messageBoardMessage.getArticleBody()));
  80. sb.append("\"");
  81. }
  82. if (messageBoardMessage.getCreator() != null) {
  83. if (sb.length() > 1) {
  84. sb.append(", ");
  85. }
  86. sb.append("\"creator\": ");
  87. sb.append(String.valueOf(messageBoardMessage.getCreator()));
  88. }
  89. if (messageBoardMessage.getCreatorStatistics() != null) {
  90. if (sb.length() > 1) {
  91. sb.append(", ");
  92. }
  93. sb.append("\"creatorStatistics\": ");
  94. sb.append(
  95. String.valueOf(messageBoardMessage.getCreatorStatistics()));
  96. }
  97. if (messageBoardMessage.getCustomFields() != null) {
  98. if (sb.length() > 1) {
  99. sb.append(", ");
  100. }
  101. sb.append("\"customFields\": ");
  102. sb.append("[");
  103. for (int i = 0; i < messageBoardMessage.getCustomFields().length;
  104. i++) {
  105. sb.append(
  106. String.valueOf(messageBoardMessage.getCustomFields()[i]));
  107. if ((i + 1) < messageBoardMessage.getCustomFields().length) {
  108. sb.append(", ");
  109. }
  110. }
  111. sb.append("]");
  112. }
  113. if (messageBoardMessage.getDateCreated() != null) {
  114. if (sb.length() > 1) {
  115. sb.append(", ");
  116. }
  117. sb.append("\"dateCreated\": ");
  118. sb.append("\"");
  119. sb.append(
  120. liferayToJSONDateFormat.format(
  121. messageBoardMessage.getDateCreated()));
  122. sb.append("\"");
  123. }
  124. if (messageBoardMessage.getDateModified() != null) {
  125. if (sb.length() > 1) {
  126. sb.append(", ");
  127. }
  128. sb.append("\"dateModified\": ");
  129. sb.append("\"");
  130. sb.append(
  131. liferayToJSONDateFormat.format(
  132. messageBoardMessage.getDateModified()));
  133. sb.append("\"");
  134. }
  135. if (messageBoardMessage.getEncodingFormat() != null) {
  136. if (sb.length() > 1) {
  137. sb.append(", ");
  138. }
  139. sb.append("\"encodingFormat\": ");
  140. sb.append("\"");
  141. sb.append(_escape(messageBoardMessage.getEncodingFormat()));
  142. sb.append("\"");
  143. }
  144. if (messageBoardMessage.getExternalReferenceCode() != null) {
  145. if (sb.length() > 1) {
  146. sb.append(", ");
  147. }
  148. sb.append("\"externalReferenceCode\": ");
  149. sb.append("\"");
  150. sb.append(_escape(messageBoardMessage.getExternalReferenceCode()));
  151. sb.append("\"");
  152. }
  153. if (messageBoardMessage.getFriendlyUrlPath() != null) {
  154. if (sb.length() > 1) {
  155. sb.append(", ");
  156. }
  157. sb.append("\"friendlyUrlPath\": ");
  158. sb.append("\"");
  159. sb.append(_escape(messageBoardMessage.getFriendlyUrlPath()));
  160. sb.append("\"");
  161. }
  162. if (messageBoardMessage.getHeadline() != null) {
  163. if (sb.length() > 1) {
  164. sb.append(", ");
  165. }
  166. sb.append("\"headline\": ");
  167. sb.append("\"");
  168. sb.append(_escape(messageBoardMessage.getHeadline()));
  169. sb.append("\"");
  170. }
  171. if (messageBoardMessage.getId() != null) {
  172. if (sb.length() > 1) {
  173. sb.append(", ");
  174. }
  175. sb.append("\"id\": ");
  176. sb.append(messageBoardMessage.getId());
  177. }
  178. if (messageBoardMessage.getKeywords() != null) {
  179. if (sb.length() > 1) {
  180. sb.append(", ");
  181. }
  182. sb.append("\"keywords\": ");
  183. sb.append("[");
  184. for (int i = 0; i < messageBoardMessage.getKeywords().length; i++) {
  185. sb.append("\"");
  186. sb.append(_escape(messageBoardMessage.getKeywords()[i]));
  187. sb.append("\"");
  188. if ((i + 1) < messageBoardMessage.getKeywords().length) {
  189. sb.append(", ");
  190. }
  191. }
  192. sb.append("]");
  193. }
  194. if (messageBoardMessage.getMessageBoardSectionId() != null) {
  195. if (sb.length() > 1) {
  196. sb.append(", ");
  197. }
  198. sb.append("\"messageBoardSectionId\": ");
  199. sb.append(messageBoardMessage.getMessageBoardSectionId());
  200. }
  201. if (messageBoardMessage.getMessageBoardThreadId() != null) {
  202. if (sb.length() > 1) {
  203. sb.append(", ");
  204. }
  205. sb.append("\"messageBoardThreadId\": ");
  206. sb.append(messageBoardMessage.getMessageBoardThreadId());
  207. }
  208. if (messageBoardMessage.getNumberOfMessageBoardAttachments() != null) {
  209. if (sb.length() > 1) {
  210. sb.append(", ");
  211. }
  212. sb.append("\"numberOfMessageBoardAttachments\": ");
  213. sb.append(messageBoardMessage.getNumberOfMessageBoardAttachments());
  214. }
  215. if (messageBoardMessage.getNumberOfMessageBoardMessages() != null) {
  216. if (sb.length() > 1) {
  217. sb.append(", ");
  218. }
  219. sb.append("\"numberOfMessageBoardMessages\": ");
  220. sb.append(messageBoardMessage.getNumberOfMessageBoardMessages());
  221. }
  222. if (messageBoardMessage.getParentMessageBoardMessageId() != null) {
  223. if (sb.length() > 1) {
  224. sb.append(", ");
  225. }
  226. sb.append("\"parentMessageBoardMessageId\": ");
  227. sb.append(messageBoardMessage.getParentMessageBoardMessageId());
  228. }
  229. if (messageBoardMessage.getRelatedContents() != null) {
  230. if (sb.length() > 1) {
  231. sb.append(", ");
  232. }
  233. sb.append("\"relatedContents\": ");
  234. sb.append("[");
  235. for (int i = 0; i < messageBoardMessage.getRelatedContents().length;
  236. i++) {
  237. sb.append(
  238. String.valueOf(
  239. messageBoardMessage.getRelatedContents()[i]));
  240. if ((i + 1) < messageBoardMessage.getRelatedContents().length) {
  241. sb.append(", ");
  242. }
  243. }
  244. sb.append("]");
  245. }
  246. if (messageBoardMessage.getShowAsAnswer() != null) {
  247. if (sb.length() > 1) {
  248. sb.append(", ");
  249. }
  250. sb.append("\"showAsAnswer\": ");
  251. sb.append(messageBoardMessage.getShowAsAnswer());
  252. }
  253. if (messageBoardMessage.getSiteId() != null) {
  254. if (sb.length() > 1) {
  255. sb.append(", ");
  256. }
  257. sb.append("\"siteId\": ");
  258. sb.append(messageBoardMessage.getSiteId());
  259. }
  260. if (messageBoardMessage.getStatus() != null) {
  261. if (sb.length() > 1) {
  262. sb.append(", ");
  263. }
  264. sb.append("\"status\": ");
  265. sb.append("\"");
  266. sb.append(_escape(messageBoardMessage.getStatus()));
  267. sb.append("\"");
  268. }
  269. if (messageBoardMessage.getSubscribed() != null) {
  270. if (sb.length() > 1) {
  271. sb.append(", ");
  272. }
  273. sb.append("\"subscribed\": ");
  274. sb.append(messageBoardMessage.getSubscribed());
  275. }
  276. if (messageBoardMessage.getViewableBy() != null) {
  277. if (sb.length() > 1) {
  278. sb.append(", ");
  279. }
  280. sb.append("\"viewableBy\": ");
  281. sb.append("\"");
  282. sb.append(messageBoardMessage.getViewableBy());
  283. sb.append("\"");
  284. }
  285. sb.append("}");
  286. return sb.toString();
  287. }
  288. public static Map<String, Object> toMap(String json) {
  289. MessageBoardMessageJSONParser messageBoardMessageJSONParser =
  290. new MessageBoardMessageJSONParser();
  291. return messageBoardMessageJSONParser.parseToMap(json);
  292. }
  293. public static Map<String, String> toMap(
  294. MessageBoardMessage messageBoardMessage) {
  295. if (messageBoardMessage == null) {
  296. return null;
  297. }
  298. Map<String, String> map = new TreeMap<>();
  299. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  300. "yyyy-MM-dd'T'HH:mm:ssXX");
  301. if (messageBoardMessage.getActions() == null) {
  302. map.put("actions", null);
  303. }
  304. else {
  305. map.put(
  306. "actions", String.valueOf(messageBoardMessage.getActions()));
  307. }
  308. if (messageBoardMessage.getAggregateRating() == null) {
  309. map.put("aggregateRating", null);
  310. }
  311. else {
  312. map.put(
  313. "aggregateRating",
  314. String.valueOf(messageBoardMessage.getAggregateRating()));
  315. }
  316. if (messageBoardMessage.getAnonymous() == null) {
  317. map.put("anonymous", null);
  318. }
  319. else {
  320. map.put(
  321. "anonymous",
  322. String.valueOf(messageBoardMessage.getAnonymous()));
  323. }
  324. if (messageBoardMessage.getArticleBody() == null) {
  325. map.put("articleBody", null);
  326. }
  327. else {
  328. map.put(
  329. "articleBody",
  330. String.valueOf(messageBoardMessage.getArticleBody()));
  331. }
  332. if (messageBoardMessage.getCreator() == null) {
  333. map.put("creator", null);
  334. }
  335. else {
  336. map.put(
  337. "creator", String.valueOf(messageBoardMessage.getCreator()));
  338. }
  339. if (messageBoardMessage.getCreatorStatistics() == null) {
  340. map.put("creatorStatistics", null);
  341. }
  342. else {
  343. map.put(
  344. "creatorStatistics",
  345. String.valueOf(messageBoardMessage.getCreatorStatistics()));
  346. }
  347. if (messageBoardMessage.getCustomFields() == null) {
  348. map.put("customFields", null);
  349. }
  350. else {
  351. map.put(
  352. "customFields",
  353. String.valueOf(messageBoardMessage.getCustomFields()));
  354. }
  355. if (messageBoardMessage.getDateCreated() == null) {
  356. map.put("dateCreated", null);
  357. }
  358. else {
  359. map.put(
  360. "dateCreated",
  361. liferayToJSONDateFormat.format(
  362. messageBoardMessage.getDateCreated()));
  363. }
  364. if (messageBoardMessage.getDateModified() == null) {
  365. map.put("dateModified", null);
  366. }
  367. else {
  368. map.put(
  369. "dateModified",
  370. liferayToJSONDateFormat.format(
  371. messageBoardMessage.getDateModified()));
  372. }
  373. if (messageBoardMessage.getEncodingFormat() == null) {
  374. map.put("encodingFormat", null);
  375. }
  376. else {
  377. map.put(
  378. "encodingFormat",
  379. String.valueOf(messageBoardMessage.getEncodingFormat()));
  380. }
  381. if (messageBoardMessage.getExternalReferenceCode() == null) {
  382. map.put("externalReferenceCode", null);
  383. }
  384. else {
  385. map.put(
  386. "externalReferenceCode",
  387. String.valueOf(messageBoardMessage.getExternalReferenceCode()));
  388. }
  389. if (messageBoardMessage.getFriendlyUrlPath() == null) {
  390. map.put("friendlyUrlPath", null);
  391. }
  392. else {
  393. map.put(
  394. "friendlyUrlPath",
  395. String.valueOf(messageBoardMessage.getFriendlyUrlPath()));
  396. }
  397. if (messageBoardMessage.getHeadline() == null) {
  398. map.put("headline", null);
  399. }
  400. else {
  401. map.put(
  402. "headline", String.valueOf(messageBoardMessage.getHeadline()));
  403. }
  404. if (messageBoardMessage.getId() == null) {
  405. map.put("id", null);
  406. }
  407. else {
  408. map.put("id", String.valueOf(messageBoardMessage.getId()));
  409. }
  410. if (messageBoardMessage.getKeywords() == null) {
  411. map.put("keywords", null);
  412. }
  413. else {
  414. map.put(
  415. "keywords", String.valueOf(messageBoardMessage.getKeywords()));
  416. }
  417. if (messageBoardMessage.getMessageBoardSectionId() == null) {
  418. map.put("messageBoardSectionId", null);
  419. }
  420. else {
  421. map.put(
  422. "messageBoardSectionId",
  423. String.valueOf(messageBoardMessage.getMessageBoardSectionId()));
  424. }
  425. if (messageBoardMessage.getMessageBoardThreadId() == null) {
  426. map.put("messageBoardThreadId", null);
  427. }
  428. else {
  429. map.put(
  430. "messageBoardThreadId",
  431. String.valueOf(messageBoardMessage.getMessageBoardThreadId()));
  432. }
  433. if (messageBoardMessage.getNumberOfMessageBoardAttachments() == null) {
  434. map.put("numberOfMessageBoardAttachments", null);
  435. }
  436. else {
  437. map.put(
  438. "numberOfMessageBoardAttachments",
  439. String.valueOf(
  440. messageBoardMessage.getNumberOfMessageBoardAttachments()));
  441. }
  442. if (messageBoardMessage.getNumberOfMessageBoardMessages() == null) {
  443. map.put("numberOfMessageBoardMessages", null);
  444. }
  445. else {
  446. map.put(
  447. "numberOfMessageBoardMessages",
  448. String.valueOf(
  449. messageBoardMessage.getNumberOfMessageBoardMessages()));
  450. }
  451. if (messageBoardMessage.getParentMessageBoardMessageId() == null) {
  452. map.put("parentMessageBoardMessageId", null);
  453. }
  454. else {
  455. map.put(
  456. "parentMessageBoardMessageId",
  457. String.valueOf(
  458. messageBoardMessage.getParentMessageBoardMessageId()));
  459. }
  460. if (messageBoardMessage.getRelatedContents() == null) {
  461. map.put("relatedContents", null);
  462. }
  463. else {
  464. map.put(
  465. "relatedContents",
  466. String.valueOf(messageBoardMessage.getRelatedContents()));
  467. }
  468. if (messageBoardMessage.getShowAsAnswer() == null) {
  469. map.put("showAsAnswer", null);
  470. }
  471. else {
  472. map.put(
  473. "showAsAnswer",
  474. String.valueOf(messageBoardMessage.getShowAsAnswer()));
  475. }
  476. if (messageBoardMessage.getSiteId() == null) {
  477. map.put("siteId", null);
  478. }
  479. else {
  480. map.put("siteId", String.valueOf(messageBoardMessage.getSiteId()));
  481. }
  482. if (messageBoardMessage.getStatus() == null) {
  483. map.put("status", null);
  484. }
  485. else {
  486. map.put("status", String.valueOf(messageBoardMessage.getStatus()));
  487. }
  488. if (messageBoardMessage.getSubscribed() == null) {
  489. map.put("subscribed", null);
  490. }
  491. else {
  492. map.put(
  493. "subscribed",
  494. String.valueOf(messageBoardMessage.getSubscribed()));
  495. }
  496. if (messageBoardMessage.getViewableBy() == null) {
  497. map.put("viewableBy", null);
  498. }
  499. else {
  500. map.put(
  501. "viewableBy",
  502. String.valueOf(messageBoardMessage.getViewableBy()));
  503. }
  504. return map;
  505. }
  506. public static class MessageBoardMessageJSONParser
  507. extends BaseJSONParser<MessageBoardMessage> {
  508. @Override
  509. protected MessageBoardMessage createDTO() {
  510. return new MessageBoardMessage();
  511. }
  512. @Override
  513. protected MessageBoardMessage[] createDTOArray(int size) {
  514. return new MessageBoardMessage[size];
  515. }
  516. @Override
  517. protected void setField(
  518. MessageBoardMessage messageBoardMessage, String jsonParserFieldName,
  519. Object jsonParserFieldValue) {
  520. if (Objects.equals(jsonParserFieldName, "actions")) {
  521. if (jsonParserFieldValue != null) {
  522. messageBoardMessage.setActions(
  523. (Map)MessageBoardMessageSerDes.toMap(
  524. (String)jsonParserFieldValue));
  525. }
  526. }
  527. else if (Objects.equals(jsonParserFieldName, "aggregateRating")) {
  528. if (jsonParserFieldValue != null) {
  529. messageBoardMessage.setAggregateRating(
  530. AggregateRatingSerDes.toDTO(
  531. (String)jsonParserFieldValue));
  532. }
  533. }
  534. else if (Objects.equals(jsonParserFieldName, "anonymous")) {
  535. if (jsonParserFieldValue != null) {
  536. messageBoardMessage.setAnonymous(
  537. (Boolean)jsonParserFieldValue);
  538. }
  539. }
  540. else if (Objects.equals(jsonParserFieldName, "articleBody")) {
  541. if (jsonParserFieldValue != null) {
  542. messageBoardMessage.setArticleBody(
  543. (String)jsonParserFieldValue);
  544. }
  545. }
  546. else if (Objects.equals(jsonParserFieldName, "creator")) {
  547. if (jsonParserFieldValue != null) {
  548. messageBoardMessage.setCreator(
  549. CreatorSerDes.toDTO((String)jsonParserFieldValue));
  550. }
  551. }
  552. else if (Objects.equals(jsonParserFieldName, "creatorStatistics")) {
  553. if (jsonParserFieldValue != null) {
  554. messageBoardMessage.setCreatorStatistics(
  555. CreatorStatisticsSerDes.toDTO(
  556. (String)jsonParserFieldValue));
  557. }
  558. }
  559. else if (Objects.equals(jsonParserFieldName, "customFields")) {
  560. if (jsonParserFieldValue != null) {
  561. messageBoardMessage.setCustomFields(
  562. Stream.of(
  563. toStrings((Object[])jsonParserFieldValue)
  564. ).map(
  565. object -> CustomFieldSerDes.toDTO((String)object)
  566. ).toArray(
  567. size -> new CustomField[size]
  568. ));
  569. }
  570. }
  571. else if (Objects.equals(jsonParserFieldName, "dateCreated")) {
  572. if (jsonParserFieldValue != null) {
  573. messageBoardMessage.setDateCreated(
  574. toDate((String)jsonParserFieldValue));
  575. }
  576. }
  577. else if (Objects.equals(jsonParserFieldName, "dateModified")) {
  578. if (jsonParserFieldValue != null) {
  579. messageBoardMessage.setDateModified(
  580. toDate((String)jsonParserFieldValue));
  581. }
  582. }
  583. else if (Objects.equals(jsonParserFieldName, "encodingFormat")) {
  584. if (jsonParserFieldValue != null) {
  585. messageBoardMessage.setEncodingFormat(
  586. (String)jsonParserFieldValue);
  587. }
  588. }
  589. else if (Objects.equals(
  590. jsonParserFieldName, "externalReferenceCode")) {
  591. if (jsonParserFieldValue != null) {
  592. messageBoardMessage.setExternalReferenceCode(
  593. (String)jsonParserFieldValue);
  594. }
  595. }
  596. else if (Objects.equals(jsonParserFieldName, "friendlyUrlPath")) {
  597. if (jsonParserFieldValue != null) {
  598. messageBoardMessage.setFriendlyUrlPath(
  599. (String)jsonParserFieldValue);
  600. }
  601. }
  602. else if (Objects.equals(jsonParserFieldName, "headline")) {
  603. if (jsonParserFieldValue != null) {
  604. messageBoardMessage.setHeadline(
  605. (String)jsonParserFieldValue);
  606. }
  607. }
  608. else if (Objects.equals(jsonParserFieldName, "id")) {
  609. if (jsonParserFieldValue != null) {
  610. messageBoardMessage.setId(
  611. Long.valueOf((String)jsonParserFieldValue));
  612. }
  613. }
  614. else if (Objects.equals(jsonParserFieldName, "keywords")) {
  615. if (jsonParserFieldValue != null) {
  616. messageBoardMessage.setKeywords(
  617. toStrings((Object[])jsonParserFieldValue));
  618. }
  619. }
  620. else if (Objects.equals(
  621. jsonParserFieldName, "messageBoardSectionId")) {
  622. if (jsonParserFieldValue != null) {
  623. messageBoardMessage.setMessageBoardSectionId(
  624. Long.valueOf((String)jsonParserFieldValue));
  625. }
  626. }
  627. else if (Objects.equals(
  628. jsonParserFieldName, "messageBoardThreadId")) {
  629. if (jsonParserFieldValue != null) {
  630. messageBoardMessage.setMessageBoardThreadId(
  631. Long.valueOf((String)jsonParserFieldValue));
  632. }
  633. }
  634. else if (Objects.equals(
  635. jsonParserFieldName,
  636. "numberOfMessageBoardAttachments")) {
  637. if (jsonParserFieldValue != null) {
  638. messageBoardMessage.setNumberOfMessageBoardAttachments(
  639. Integer.valueOf((String)jsonParserFieldValue));
  640. }
  641. }
  642. else if (Objects.equals(
  643. jsonParserFieldName, "numberOfMessageBoardMessages")) {
  644. if (jsonParserFieldValue != null) {
  645. messageBoardMessage.setNumberOfMessageBoardMessages(
  646. Integer.valueOf((String)jsonParserFieldValue));
  647. }
  648. }
  649. else if (Objects.equals(
  650. jsonParserFieldName, "parentMessageBoardMessageId")) {
  651. if (jsonParserFieldValue != null) {
  652. messageBoardMessage.setParentMessageBoardMessageId(
  653. Long.valueOf((String)jsonParserFieldValue));
  654. }
  655. }
  656. else if (Objects.equals(jsonParserFieldName, "relatedContents")) {
  657. if (jsonParserFieldValue != null) {
  658. messageBoardMessage.setRelatedContents(
  659. Stream.of(
  660. toStrings((Object[])jsonParserFieldValue)
  661. ).map(
  662. object -> RelatedContentSerDes.toDTO((String)object)
  663. ).toArray(
  664. size -> new RelatedContent[size]
  665. ));
  666. }
  667. }
  668. else if (Objects.equals(jsonParserFieldName, "showAsAnswer")) {
  669. if (jsonParserFieldValue != null) {
  670. messageBoardMessage.setShowAsAnswer(
  671. (Boolean)jsonParserFieldValue);
  672. }
  673. }
  674. else if (Objects.equals(jsonParserFieldName, "siteId")) {
  675. if (jsonParserFieldValue != null) {
  676. messageBoardMessage.setSiteId(
  677. Long.valueOf((String)jsonParserFieldValue));
  678. }
  679. }
  680. else if (Objects.equals(jsonParserFieldName, "status")) {
  681. if (jsonParserFieldValue != null) {
  682. messageBoardMessage.setStatus((String)jsonParserFieldValue);
  683. }
  684. }
  685. else if (Objects.equals(jsonParserFieldName, "subscribed")) {
  686. if (jsonParserFieldValue != null) {
  687. messageBoardMessage.setSubscribed(
  688. (Boolean)jsonParserFieldValue);
  689. }
  690. }
  691. else if (Objects.equals(jsonParserFieldName, "viewableBy")) {
  692. if (jsonParserFieldValue != null) {
  693. messageBoardMessage.setViewableBy(
  694. MessageBoardMessage.ViewableBy.create(
  695. (String)jsonParserFieldValue));
  696. }
  697. }
  698. }
  699. }
  700. private static String _escape(Object object) {
  701. String string = String.valueOf(object);
  702. for (String[] strings : BaseJSONParser.JSON_ESCAPE_STRINGS) {
  703. string = string.replace(strings[0], strings[1]);
  704. }
  705. return string;
  706. }
  707. private static String _toJSON(Map<String, ?> map) {
  708. StringBuilder sb = new StringBuilder("{");
  709. @SuppressWarnings("unchecked")
  710. Set set = map.entrySet();
  711. @SuppressWarnings("unchecked")
  712. Iterator<Map.Entry<String, ?>> iterator = set.iterator();
  713. while (iterator.hasNext()) {
  714. Map.Entry<String, ?> entry = iterator.next();
  715. sb.append("\"");
  716. sb.append(entry.getKey());
  717. sb.append("\": ");
  718. Object value = entry.getValue();
  719. Class<?> valueClass = value.getClass();
  720. if (value instanceof Map) {
  721. sb.append(_toJSON((Map)value));
  722. }
  723. else if (valueClass.isArray()) {
  724. Object[] values = (Object[])value;
  725. sb.append("[");
  726. for (int i = 0; i < values.length; i++) {
  727. sb.append("\"");
  728. sb.append(_escape(values[i]));
  729. sb.append("\"");
  730. if ((i + 1) < values.length) {
  731. sb.append(", ");
  732. }
  733. }
  734. sb.append("]");
  735. }
  736. else if (value instanceof String) {
  737. sb.append("\"");
  738. sb.append(_escape(entry.getValue()));
  739. sb.append("\"");
  740. }
  741. else {
  742. sb.append(String.valueOf(entry.getValue()));
  743. }
  744. if (iterator.hasNext()) {
  745. sb.append(", ");
  746. }
  747. }
  748. sb.append("}");
  749. return sb.toString();
  750. }
  751. }