/modules/apps/commerce/headless/headless-commerce/headless-commerce-admin-order-client/src/main/java/com/liferay/headless/commerce/admin/order/client/serdes/v1_0/OrderItemSerDes.java

https://github.com/danielreuther/liferay-portal · Java · 1198 lines · 942 code · 239 blank · 17 comment · 396 complexity · e54759c784253386b884f727a30be8f9 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.commerce.admin.order.client.serdes.v1_0;
  15. import com.liferay.headless.commerce.admin.order.client.dto.v1_0.CustomField;
  16. import com.liferay.headless.commerce.admin.order.client.dto.v1_0.OrderItem;
  17. import com.liferay.headless.commerce.admin.order.client.json.BaseJSONParser;
  18. import java.math.BigDecimal;
  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 Alessio Antonio Rendina
  30. * @generated
  31. */
  32. @Generated("")
  33. public class OrderItemSerDes {
  34. public static OrderItem toDTO(String json) {
  35. OrderItemJSONParser orderItemJSONParser = new OrderItemJSONParser();
  36. return orderItemJSONParser.parseToDTO(json);
  37. }
  38. public static OrderItem[] toDTOs(String json) {
  39. OrderItemJSONParser orderItemJSONParser = new OrderItemJSONParser();
  40. return orderItemJSONParser.parseToDTOs(json);
  41. }
  42. public static String toJSON(OrderItem orderItem) {
  43. if (orderItem == null) {
  44. return "null";
  45. }
  46. StringBuilder sb = new StringBuilder();
  47. sb.append("{");
  48. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  49. "yyyy-MM-dd'T'HH:mm:ssXX");
  50. if (orderItem.getBookedQuantityId() != null) {
  51. if (sb.length() > 1) {
  52. sb.append(", ");
  53. }
  54. sb.append("\"bookedQuantityId\": ");
  55. sb.append(orderItem.getBookedQuantityId());
  56. }
  57. if (orderItem.getCustomFields() != null) {
  58. if (sb.length() > 1) {
  59. sb.append(", ");
  60. }
  61. sb.append("\"customFields\": ");
  62. sb.append("[");
  63. for (int i = 0; i < orderItem.getCustomFields().length; i++) {
  64. sb.append(String.valueOf(orderItem.getCustomFields()[i]));
  65. if ((i + 1) < orderItem.getCustomFields().length) {
  66. sb.append(", ");
  67. }
  68. }
  69. sb.append("]");
  70. }
  71. if (orderItem.getDecimalQuantity() != null) {
  72. if (sb.length() > 1) {
  73. sb.append(", ");
  74. }
  75. sb.append("\"decimalQuantity\": ");
  76. sb.append(orderItem.getDecimalQuantity());
  77. }
  78. if (orderItem.getDeliveryGroup() != null) {
  79. if (sb.length() > 1) {
  80. sb.append(", ");
  81. }
  82. sb.append("\"deliveryGroup\": ");
  83. sb.append("\"");
  84. sb.append(_escape(orderItem.getDeliveryGroup()));
  85. sb.append("\"");
  86. }
  87. if (orderItem.getDiscountAmount() != null) {
  88. if (sb.length() > 1) {
  89. sb.append(", ");
  90. }
  91. sb.append("\"discountAmount\": ");
  92. sb.append(orderItem.getDiscountAmount());
  93. }
  94. if (orderItem.getDiscountPercentageLevel1() != null) {
  95. if (sb.length() > 1) {
  96. sb.append(", ");
  97. }
  98. sb.append("\"discountPercentageLevel1\": ");
  99. sb.append(orderItem.getDiscountPercentageLevel1());
  100. }
  101. if (orderItem.getDiscountPercentageLevel1WithTaxAmount() != null) {
  102. if (sb.length() > 1) {
  103. sb.append(", ");
  104. }
  105. sb.append("\"discountPercentageLevel1WithTaxAmount\": ");
  106. sb.append(orderItem.getDiscountPercentageLevel1WithTaxAmount());
  107. }
  108. if (orderItem.getDiscountPercentageLevel2() != null) {
  109. if (sb.length() > 1) {
  110. sb.append(", ");
  111. }
  112. sb.append("\"discountPercentageLevel2\": ");
  113. sb.append(orderItem.getDiscountPercentageLevel2());
  114. }
  115. if (orderItem.getDiscountPercentageLevel2WithTaxAmount() != null) {
  116. if (sb.length() > 1) {
  117. sb.append(", ");
  118. }
  119. sb.append("\"discountPercentageLevel2WithTaxAmount\": ");
  120. sb.append(orderItem.getDiscountPercentageLevel2WithTaxAmount());
  121. }
  122. if (orderItem.getDiscountPercentageLevel3() != null) {
  123. if (sb.length() > 1) {
  124. sb.append(", ");
  125. }
  126. sb.append("\"discountPercentageLevel3\": ");
  127. sb.append(orderItem.getDiscountPercentageLevel3());
  128. }
  129. if (orderItem.getDiscountPercentageLevel3WithTaxAmount() != null) {
  130. if (sb.length() > 1) {
  131. sb.append(", ");
  132. }
  133. sb.append("\"discountPercentageLevel3WithTaxAmount\": ");
  134. sb.append(orderItem.getDiscountPercentageLevel3WithTaxAmount());
  135. }
  136. if (orderItem.getDiscountPercentageLevel4() != null) {
  137. if (sb.length() > 1) {
  138. sb.append(", ");
  139. }
  140. sb.append("\"discountPercentageLevel4\": ");
  141. sb.append(orderItem.getDiscountPercentageLevel4());
  142. }
  143. if (orderItem.getDiscountPercentageLevel4WithTaxAmount() != null) {
  144. if (sb.length() > 1) {
  145. sb.append(", ");
  146. }
  147. sb.append("\"discountPercentageLevel4WithTaxAmount\": ");
  148. sb.append(orderItem.getDiscountPercentageLevel4WithTaxAmount());
  149. }
  150. if (orderItem.getDiscountWithTaxAmount() != null) {
  151. if (sb.length() > 1) {
  152. sb.append(", ");
  153. }
  154. sb.append("\"discountWithTaxAmount\": ");
  155. sb.append(orderItem.getDiscountWithTaxAmount());
  156. }
  157. if (orderItem.getExternalReferenceCode() != null) {
  158. if (sb.length() > 1) {
  159. sb.append(", ");
  160. }
  161. sb.append("\"externalReferenceCode\": ");
  162. sb.append("\"");
  163. sb.append(_escape(orderItem.getExternalReferenceCode()));
  164. sb.append("\"");
  165. }
  166. if (orderItem.getFinalPrice() != null) {
  167. if (sb.length() > 1) {
  168. sb.append(", ");
  169. }
  170. sb.append("\"finalPrice\": ");
  171. sb.append(orderItem.getFinalPrice());
  172. }
  173. if (orderItem.getFinalPriceWithTaxAmount() != null) {
  174. if (sb.length() > 1) {
  175. sb.append(", ");
  176. }
  177. sb.append("\"finalPriceWithTaxAmount\": ");
  178. sb.append(orderItem.getFinalPriceWithTaxAmount());
  179. }
  180. if (orderItem.getFormattedQuantity() != null) {
  181. if (sb.length() > 1) {
  182. sb.append(", ");
  183. }
  184. sb.append("\"formattedQuantity\": ");
  185. sb.append("\"");
  186. sb.append(_escape(orderItem.getFormattedQuantity()));
  187. sb.append("\"");
  188. }
  189. if (orderItem.getId() != null) {
  190. if (sb.length() > 1) {
  191. sb.append(", ");
  192. }
  193. sb.append("\"id\": ");
  194. sb.append(orderItem.getId());
  195. }
  196. if (orderItem.getName() != null) {
  197. if (sb.length() > 1) {
  198. sb.append(", ");
  199. }
  200. sb.append("\"name\": ");
  201. sb.append(_toJSON(orderItem.getName()));
  202. }
  203. if (orderItem.getOptions() != null) {
  204. if (sb.length() > 1) {
  205. sb.append(", ");
  206. }
  207. sb.append("\"options\": ");
  208. sb.append("\"");
  209. sb.append(_escape(orderItem.getOptions()));
  210. sb.append("\"");
  211. }
  212. if (orderItem.getOrderExternalReferenceCode() != null) {
  213. if (sb.length() > 1) {
  214. sb.append(", ");
  215. }
  216. sb.append("\"orderExternalReferenceCode\": ");
  217. sb.append("\"");
  218. sb.append(_escape(orderItem.getOrderExternalReferenceCode()));
  219. sb.append("\"");
  220. }
  221. if (orderItem.getOrderId() != null) {
  222. if (sb.length() > 1) {
  223. sb.append(", ");
  224. }
  225. sb.append("\"orderId\": ");
  226. sb.append(orderItem.getOrderId());
  227. }
  228. if (orderItem.getPrintedNote() != null) {
  229. if (sb.length() > 1) {
  230. sb.append(", ");
  231. }
  232. sb.append("\"printedNote\": ");
  233. sb.append("\"");
  234. sb.append(_escape(orderItem.getPrintedNote()));
  235. sb.append("\"");
  236. }
  237. if (orderItem.getPromoPrice() != null) {
  238. if (sb.length() > 1) {
  239. sb.append(", ");
  240. }
  241. sb.append("\"promoPrice\": ");
  242. sb.append(orderItem.getPromoPrice());
  243. }
  244. if (orderItem.getPromoPriceWithTaxAmount() != null) {
  245. if (sb.length() > 1) {
  246. sb.append(", ");
  247. }
  248. sb.append("\"promoPriceWithTaxAmount\": ");
  249. sb.append(orderItem.getPromoPriceWithTaxAmount());
  250. }
  251. if (orderItem.getQuantity() != null) {
  252. if (sb.length() > 1) {
  253. sb.append(", ");
  254. }
  255. sb.append("\"quantity\": ");
  256. sb.append(orderItem.getQuantity());
  257. }
  258. if (orderItem.getRequestedDeliveryDate() != null) {
  259. if (sb.length() > 1) {
  260. sb.append(", ");
  261. }
  262. sb.append("\"requestedDeliveryDate\": ");
  263. sb.append("\"");
  264. sb.append(
  265. liferayToJSONDateFormat.format(
  266. orderItem.getRequestedDeliveryDate()));
  267. sb.append("\"");
  268. }
  269. if (orderItem.getShippedQuantity() != null) {
  270. if (sb.length() > 1) {
  271. sb.append(", ");
  272. }
  273. sb.append("\"shippedQuantity\": ");
  274. sb.append(orderItem.getShippedQuantity());
  275. }
  276. if (orderItem.getShippingAddress() != null) {
  277. if (sb.length() > 1) {
  278. sb.append(", ");
  279. }
  280. sb.append("\"shippingAddress\": ");
  281. sb.append(String.valueOf(orderItem.getShippingAddress()));
  282. }
  283. if (orderItem.getShippingAddressId() != null) {
  284. if (sb.length() > 1) {
  285. sb.append(", ");
  286. }
  287. sb.append("\"shippingAddressId\": ");
  288. sb.append(orderItem.getShippingAddressId());
  289. }
  290. if (orderItem.getSku() != null) {
  291. if (sb.length() > 1) {
  292. sb.append(", ");
  293. }
  294. sb.append("\"sku\": ");
  295. sb.append("\"");
  296. sb.append(_escape(orderItem.getSku()));
  297. sb.append("\"");
  298. }
  299. if (orderItem.getSkuExternalReferenceCode() != null) {
  300. if (sb.length() > 1) {
  301. sb.append(", ");
  302. }
  303. sb.append("\"skuExternalReferenceCode\": ");
  304. sb.append("\"");
  305. sb.append(_escape(orderItem.getSkuExternalReferenceCode()));
  306. sb.append("\"");
  307. }
  308. if (orderItem.getSkuId() != null) {
  309. if (sb.length() > 1) {
  310. sb.append(", ");
  311. }
  312. sb.append("\"skuId\": ");
  313. sb.append(orderItem.getSkuId());
  314. }
  315. if (orderItem.getSubscription() != null) {
  316. if (sb.length() > 1) {
  317. sb.append(", ");
  318. }
  319. sb.append("\"subscription\": ");
  320. sb.append(orderItem.getSubscription());
  321. }
  322. if (orderItem.getUnitOfMeasure() != null) {
  323. if (sb.length() > 1) {
  324. sb.append(", ");
  325. }
  326. sb.append("\"unitOfMeasure\": ");
  327. sb.append("\"");
  328. sb.append(_escape(orderItem.getUnitOfMeasure()));
  329. sb.append("\"");
  330. }
  331. if (orderItem.getUnitPrice() != null) {
  332. if (sb.length() > 1) {
  333. sb.append(", ");
  334. }
  335. sb.append("\"unitPrice\": ");
  336. sb.append(orderItem.getUnitPrice());
  337. }
  338. if (orderItem.getUnitPriceWithTaxAmount() != null) {
  339. if (sb.length() > 1) {
  340. sb.append(", ");
  341. }
  342. sb.append("\"unitPriceWithTaxAmount\": ");
  343. sb.append(orderItem.getUnitPriceWithTaxAmount());
  344. }
  345. sb.append("}");
  346. return sb.toString();
  347. }
  348. public static Map<String, Object> toMap(String json) {
  349. OrderItemJSONParser orderItemJSONParser = new OrderItemJSONParser();
  350. return orderItemJSONParser.parseToMap(json);
  351. }
  352. public static Map<String, String> toMap(OrderItem orderItem) {
  353. if (orderItem == null) {
  354. return null;
  355. }
  356. Map<String, String> map = new TreeMap<>();
  357. DateFormat liferayToJSONDateFormat = new SimpleDateFormat(
  358. "yyyy-MM-dd'T'HH:mm:ssXX");
  359. if (orderItem.getBookedQuantityId() == null) {
  360. map.put("bookedQuantityId", null);
  361. }
  362. else {
  363. map.put(
  364. "bookedQuantityId",
  365. String.valueOf(orderItem.getBookedQuantityId()));
  366. }
  367. if (orderItem.getCustomFields() == null) {
  368. map.put("customFields", null);
  369. }
  370. else {
  371. map.put(
  372. "customFields", String.valueOf(orderItem.getCustomFields()));
  373. }
  374. if (orderItem.getDecimalQuantity() == null) {
  375. map.put("decimalQuantity", null);
  376. }
  377. else {
  378. map.put(
  379. "decimalQuantity",
  380. String.valueOf(orderItem.getDecimalQuantity()));
  381. }
  382. if (orderItem.getDeliveryGroup() == null) {
  383. map.put("deliveryGroup", null);
  384. }
  385. else {
  386. map.put(
  387. "deliveryGroup", String.valueOf(orderItem.getDeliveryGroup()));
  388. }
  389. if (orderItem.getDiscountAmount() == null) {
  390. map.put("discountAmount", null);
  391. }
  392. else {
  393. map.put(
  394. "discountAmount",
  395. String.valueOf(orderItem.getDiscountAmount()));
  396. }
  397. if (orderItem.getDiscountPercentageLevel1() == null) {
  398. map.put("discountPercentageLevel1", null);
  399. }
  400. else {
  401. map.put(
  402. "discountPercentageLevel1",
  403. String.valueOf(orderItem.getDiscountPercentageLevel1()));
  404. }
  405. if (orderItem.getDiscountPercentageLevel1WithTaxAmount() == null) {
  406. map.put("discountPercentageLevel1WithTaxAmount", null);
  407. }
  408. else {
  409. map.put(
  410. "discountPercentageLevel1WithTaxAmount",
  411. String.valueOf(
  412. orderItem.getDiscountPercentageLevel1WithTaxAmount()));
  413. }
  414. if (orderItem.getDiscountPercentageLevel2() == null) {
  415. map.put("discountPercentageLevel2", null);
  416. }
  417. else {
  418. map.put(
  419. "discountPercentageLevel2",
  420. String.valueOf(orderItem.getDiscountPercentageLevel2()));
  421. }
  422. if (orderItem.getDiscountPercentageLevel2WithTaxAmount() == null) {
  423. map.put("discountPercentageLevel2WithTaxAmount", null);
  424. }
  425. else {
  426. map.put(
  427. "discountPercentageLevel2WithTaxAmount",
  428. String.valueOf(
  429. orderItem.getDiscountPercentageLevel2WithTaxAmount()));
  430. }
  431. if (orderItem.getDiscountPercentageLevel3() == null) {
  432. map.put("discountPercentageLevel3", null);
  433. }
  434. else {
  435. map.put(
  436. "discountPercentageLevel3",
  437. String.valueOf(orderItem.getDiscountPercentageLevel3()));
  438. }
  439. if (orderItem.getDiscountPercentageLevel3WithTaxAmount() == null) {
  440. map.put("discountPercentageLevel3WithTaxAmount", null);
  441. }
  442. else {
  443. map.put(
  444. "discountPercentageLevel3WithTaxAmount",
  445. String.valueOf(
  446. orderItem.getDiscountPercentageLevel3WithTaxAmount()));
  447. }
  448. if (orderItem.getDiscountPercentageLevel4() == null) {
  449. map.put("discountPercentageLevel4", null);
  450. }
  451. else {
  452. map.put(
  453. "discountPercentageLevel4",
  454. String.valueOf(orderItem.getDiscountPercentageLevel4()));
  455. }
  456. if (orderItem.getDiscountPercentageLevel4WithTaxAmount() == null) {
  457. map.put("discountPercentageLevel4WithTaxAmount", null);
  458. }
  459. else {
  460. map.put(
  461. "discountPercentageLevel4WithTaxAmount",
  462. String.valueOf(
  463. orderItem.getDiscountPercentageLevel4WithTaxAmount()));
  464. }
  465. if (orderItem.getDiscountWithTaxAmount() == null) {
  466. map.put("discountWithTaxAmount", null);
  467. }
  468. else {
  469. map.put(
  470. "discountWithTaxAmount",
  471. String.valueOf(orderItem.getDiscountWithTaxAmount()));
  472. }
  473. if (orderItem.getExternalReferenceCode() == null) {
  474. map.put("externalReferenceCode", null);
  475. }
  476. else {
  477. map.put(
  478. "externalReferenceCode",
  479. String.valueOf(orderItem.getExternalReferenceCode()));
  480. }
  481. if (orderItem.getFinalPrice() == null) {
  482. map.put("finalPrice", null);
  483. }
  484. else {
  485. map.put("finalPrice", String.valueOf(orderItem.getFinalPrice()));
  486. }
  487. if (orderItem.getFinalPriceWithTaxAmount() == null) {
  488. map.put("finalPriceWithTaxAmount", null);
  489. }
  490. else {
  491. map.put(
  492. "finalPriceWithTaxAmount",
  493. String.valueOf(orderItem.getFinalPriceWithTaxAmount()));
  494. }
  495. if (orderItem.getFormattedQuantity() == null) {
  496. map.put("formattedQuantity", null);
  497. }
  498. else {
  499. map.put(
  500. "formattedQuantity",
  501. String.valueOf(orderItem.getFormattedQuantity()));
  502. }
  503. if (orderItem.getId() == null) {
  504. map.put("id", null);
  505. }
  506. else {
  507. map.put("id", String.valueOf(orderItem.getId()));
  508. }
  509. if (orderItem.getName() == null) {
  510. map.put("name", null);
  511. }
  512. else {
  513. map.put("name", String.valueOf(orderItem.getName()));
  514. }
  515. if (orderItem.getOptions() == null) {
  516. map.put("options", null);
  517. }
  518. else {
  519. map.put("options", String.valueOf(orderItem.getOptions()));
  520. }
  521. if (orderItem.getOrderExternalReferenceCode() == null) {
  522. map.put("orderExternalReferenceCode", null);
  523. }
  524. else {
  525. map.put(
  526. "orderExternalReferenceCode",
  527. String.valueOf(orderItem.getOrderExternalReferenceCode()));
  528. }
  529. if (orderItem.getOrderId() == null) {
  530. map.put("orderId", null);
  531. }
  532. else {
  533. map.put("orderId", String.valueOf(orderItem.getOrderId()));
  534. }
  535. if (orderItem.getPrintedNote() == null) {
  536. map.put("printedNote", null);
  537. }
  538. else {
  539. map.put("printedNote", String.valueOf(orderItem.getPrintedNote()));
  540. }
  541. if (orderItem.getPromoPrice() == null) {
  542. map.put("promoPrice", null);
  543. }
  544. else {
  545. map.put("promoPrice", String.valueOf(orderItem.getPromoPrice()));
  546. }
  547. if (orderItem.getPromoPriceWithTaxAmount() == null) {
  548. map.put("promoPriceWithTaxAmount", null);
  549. }
  550. else {
  551. map.put(
  552. "promoPriceWithTaxAmount",
  553. String.valueOf(orderItem.getPromoPriceWithTaxAmount()));
  554. }
  555. if (orderItem.getQuantity() == null) {
  556. map.put("quantity", null);
  557. }
  558. else {
  559. map.put("quantity", String.valueOf(orderItem.getQuantity()));
  560. }
  561. if (orderItem.getRequestedDeliveryDate() == null) {
  562. map.put("requestedDeliveryDate", null);
  563. }
  564. else {
  565. map.put(
  566. "requestedDeliveryDate",
  567. liferayToJSONDateFormat.format(
  568. orderItem.getRequestedDeliveryDate()));
  569. }
  570. if (orderItem.getShippedQuantity() == null) {
  571. map.put("shippedQuantity", null);
  572. }
  573. else {
  574. map.put(
  575. "shippedQuantity",
  576. String.valueOf(orderItem.getShippedQuantity()));
  577. }
  578. if (orderItem.getShippingAddress() == null) {
  579. map.put("shippingAddress", null);
  580. }
  581. else {
  582. map.put(
  583. "shippingAddress",
  584. String.valueOf(orderItem.getShippingAddress()));
  585. }
  586. if (orderItem.getShippingAddressId() == null) {
  587. map.put("shippingAddressId", null);
  588. }
  589. else {
  590. map.put(
  591. "shippingAddressId",
  592. String.valueOf(orderItem.getShippingAddressId()));
  593. }
  594. if (orderItem.getSku() == null) {
  595. map.put("sku", null);
  596. }
  597. else {
  598. map.put("sku", String.valueOf(orderItem.getSku()));
  599. }
  600. if (orderItem.getSkuExternalReferenceCode() == null) {
  601. map.put("skuExternalReferenceCode", null);
  602. }
  603. else {
  604. map.put(
  605. "skuExternalReferenceCode",
  606. String.valueOf(orderItem.getSkuExternalReferenceCode()));
  607. }
  608. if (orderItem.getSkuId() == null) {
  609. map.put("skuId", null);
  610. }
  611. else {
  612. map.put("skuId", String.valueOf(orderItem.getSkuId()));
  613. }
  614. if (orderItem.getSubscription() == null) {
  615. map.put("subscription", null);
  616. }
  617. else {
  618. map.put(
  619. "subscription", String.valueOf(orderItem.getSubscription()));
  620. }
  621. if (orderItem.getUnitOfMeasure() == null) {
  622. map.put("unitOfMeasure", null);
  623. }
  624. else {
  625. map.put(
  626. "unitOfMeasure", String.valueOf(orderItem.getUnitOfMeasure()));
  627. }
  628. if (orderItem.getUnitPrice() == null) {
  629. map.put("unitPrice", null);
  630. }
  631. else {
  632. map.put("unitPrice", String.valueOf(orderItem.getUnitPrice()));
  633. }
  634. if (orderItem.getUnitPriceWithTaxAmount() == null) {
  635. map.put("unitPriceWithTaxAmount", null);
  636. }
  637. else {
  638. map.put(
  639. "unitPriceWithTaxAmount",
  640. String.valueOf(orderItem.getUnitPriceWithTaxAmount()));
  641. }
  642. return map;
  643. }
  644. public static class OrderItemJSONParser extends BaseJSONParser<OrderItem> {
  645. @Override
  646. protected OrderItem createDTO() {
  647. return new OrderItem();
  648. }
  649. @Override
  650. protected OrderItem[] createDTOArray(int size) {
  651. return new OrderItem[size];
  652. }
  653. @Override
  654. protected void setField(
  655. OrderItem orderItem, String jsonParserFieldName,
  656. Object jsonParserFieldValue) {
  657. if (Objects.equals(jsonParserFieldName, "bookedQuantityId")) {
  658. if (jsonParserFieldValue != null) {
  659. orderItem.setBookedQuantityId(
  660. Long.valueOf((String)jsonParserFieldValue));
  661. }
  662. }
  663. else if (Objects.equals(jsonParserFieldName, "customFields")) {
  664. if (jsonParserFieldValue != null) {
  665. orderItem.setCustomFields(
  666. Stream.of(
  667. toStrings((Object[])jsonParserFieldValue)
  668. ).map(
  669. object -> CustomFieldSerDes.toDTO((String)object)
  670. ).toArray(
  671. size -> new CustomField[size]
  672. ));
  673. }
  674. }
  675. else if (Objects.equals(jsonParserFieldName, "decimalQuantity")) {
  676. if (jsonParserFieldValue != null) {
  677. orderItem.setDecimalQuantity(
  678. new BigDecimal((String)jsonParserFieldValue));
  679. }
  680. }
  681. else if (Objects.equals(jsonParserFieldName, "deliveryGroup")) {
  682. if (jsonParserFieldValue != null) {
  683. orderItem.setDeliveryGroup((String)jsonParserFieldValue);
  684. }
  685. }
  686. else if (Objects.equals(jsonParserFieldName, "discountAmount")) {
  687. if (jsonParserFieldValue != null) {
  688. orderItem.setDiscountAmount(
  689. new BigDecimal((String)jsonParserFieldValue));
  690. }
  691. }
  692. else if (Objects.equals(
  693. jsonParserFieldName, "discountPercentageLevel1")) {
  694. if (jsonParserFieldValue != null) {
  695. orderItem.setDiscountPercentageLevel1(
  696. new BigDecimal((String)jsonParserFieldValue));
  697. }
  698. }
  699. else if (Objects.equals(
  700. jsonParserFieldName,
  701. "discountPercentageLevel1WithTaxAmount")) {
  702. if (jsonParserFieldValue != null) {
  703. orderItem.setDiscountPercentageLevel1WithTaxAmount(
  704. new BigDecimal((String)jsonParserFieldValue));
  705. }
  706. }
  707. else if (Objects.equals(
  708. jsonParserFieldName, "discountPercentageLevel2")) {
  709. if (jsonParserFieldValue != null) {
  710. orderItem.setDiscountPercentageLevel2(
  711. new BigDecimal((String)jsonParserFieldValue));
  712. }
  713. }
  714. else if (Objects.equals(
  715. jsonParserFieldName,
  716. "discountPercentageLevel2WithTaxAmount")) {
  717. if (jsonParserFieldValue != null) {
  718. orderItem.setDiscountPercentageLevel2WithTaxAmount(
  719. new BigDecimal((String)jsonParserFieldValue));
  720. }
  721. }
  722. else if (Objects.equals(
  723. jsonParserFieldName, "discountPercentageLevel3")) {
  724. if (jsonParserFieldValue != null) {
  725. orderItem.setDiscountPercentageLevel3(
  726. new BigDecimal((String)jsonParserFieldValue));
  727. }
  728. }
  729. else if (Objects.equals(
  730. jsonParserFieldName,
  731. "discountPercentageLevel3WithTaxAmount")) {
  732. if (jsonParserFieldValue != null) {
  733. orderItem.setDiscountPercentageLevel3WithTaxAmount(
  734. new BigDecimal((String)jsonParserFieldValue));
  735. }
  736. }
  737. else if (Objects.equals(
  738. jsonParserFieldName, "discountPercentageLevel4")) {
  739. if (jsonParserFieldValue != null) {
  740. orderItem.setDiscountPercentageLevel4(
  741. new BigDecimal((String)jsonParserFieldValue));
  742. }
  743. }
  744. else if (Objects.equals(
  745. jsonParserFieldName,
  746. "discountPercentageLevel4WithTaxAmount")) {
  747. if (jsonParserFieldValue != null) {
  748. orderItem.setDiscountPercentageLevel4WithTaxAmount(
  749. new BigDecimal((String)jsonParserFieldValue));
  750. }
  751. }
  752. else if (Objects.equals(
  753. jsonParserFieldName, "discountWithTaxAmount")) {
  754. if (jsonParserFieldValue != null) {
  755. orderItem.setDiscountWithTaxAmount(
  756. new BigDecimal((String)jsonParserFieldValue));
  757. }
  758. }
  759. else if (Objects.equals(
  760. jsonParserFieldName, "externalReferenceCode")) {
  761. if (jsonParserFieldValue != null) {
  762. orderItem.setExternalReferenceCode(
  763. (String)jsonParserFieldValue);
  764. }
  765. }
  766. else if (Objects.equals(jsonParserFieldName, "finalPrice")) {
  767. if (jsonParserFieldValue != null) {
  768. orderItem.setFinalPrice(
  769. new BigDecimal((String)jsonParserFieldValue));
  770. }
  771. }
  772. else if (Objects.equals(
  773. jsonParserFieldName, "finalPriceWithTaxAmount")) {
  774. if (jsonParserFieldValue != null) {
  775. orderItem.setFinalPriceWithTaxAmount(
  776. new BigDecimal((String)jsonParserFieldValue));
  777. }
  778. }
  779. else if (Objects.equals(jsonParserFieldName, "formattedQuantity")) {
  780. if (jsonParserFieldValue != null) {
  781. orderItem.setFormattedQuantity(
  782. (String)jsonParserFieldValue);
  783. }
  784. }
  785. else if (Objects.equals(jsonParserFieldName, "id")) {
  786. if (jsonParserFieldValue != null) {
  787. orderItem.setId(Long.valueOf((String)jsonParserFieldValue));
  788. }
  789. }
  790. else if (Objects.equals(jsonParserFieldName, "name")) {
  791. if (jsonParserFieldValue != null) {
  792. orderItem.setName(
  793. (Map)OrderItemSerDes.toMap(
  794. (String)jsonParserFieldValue));
  795. }
  796. }
  797. else if (Objects.equals(jsonParserFieldName, "options")) {
  798. if (jsonParserFieldValue != null) {
  799. orderItem.setOptions((String)jsonParserFieldValue);
  800. }
  801. }
  802. else if (Objects.equals(
  803. jsonParserFieldName, "orderExternalReferenceCode")) {
  804. if (jsonParserFieldValue != null) {
  805. orderItem.setOrderExternalReferenceCode(
  806. (String)jsonParserFieldValue);
  807. }
  808. }
  809. else if (Objects.equals(jsonParserFieldName, "orderId")) {
  810. if (jsonParserFieldValue != null) {
  811. orderItem.setOrderId(
  812. Long.valueOf((String)jsonParserFieldValue));
  813. }
  814. }
  815. else if (Objects.equals(jsonParserFieldName, "printedNote")) {
  816. if (jsonParserFieldValue != null) {
  817. orderItem.setPrintedNote((String)jsonParserFieldValue);
  818. }
  819. }
  820. else if (Objects.equals(jsonParserFieldName, "promoPrice")) {
  821. if (jsonParserFieldValue != null) {
  822. orderItem.setPromoPrice(
  823. new BigDecimal((String)jsonParserFieldValue));
  824. }
  825. }
  826. else if (Objects.equals(
  827. jsonParserFieldName, "promoPriceWithTaxAmount")) {
  828. if (jsonParserFieldValue != null) {
  829. orderItem.setPromoPriceWithTaxAmount(
  830. new BigDecimal((String)jsonParserFieldValue));
  831. }
  832. }
  833. else if (Objects.equals(jsonParserFieldName, "quantity")) {
  834. if (jsonParserFieldValue != null) {
  835. orderItem.setQuantity(
  836. Integer.valueOf((String)jsonParserFieldValue));
  837. }
  838. }
  839. else if (Objects.equals(
  840. jsonParserFieldName, "requestedDeliveryDate")) {
  841. if (jsonParserFieldValue != null) {
  842. orderItem.setRequestedDeliveryDate(
  843. toDate((String)jsonParserFieldValue));
  844. }
  845. }
  846. else if (Objects.equals(jsonParserFieldName, "shippedQuantity")) {
  847. if (jsonParserFieldValue != null) {
  848. orderItem.setShippedQuantity(
  849. Integer.valueOf((String)jsonParserFieldValue));
  850. }
  851. }
  852. else if (Objects.equals(jsonParserFieldName, "shippingAddress")) {
  853. if (jsonParserFieldValue != null) {
  854. orderItem.setShippingAddress(
  855. ShippingAddressSerDes.toDTO(
  856. (String)jsonParserFieldValue));
  857. }
  858. }
  859. else if (Objects.equals(jsonParserFieldName, "shippingAddressId")) {
  860. if (jsonParserFieldValue != null) {
  861. orderItem.setShippingAddressId(
  862. Long.valueOf((String)jsonParserFieldValue));
  863. }
  864. }
  865. else if (Objects.equals(jsonParserFieldName, "sku")) {
  866. if (jsonParserFieldValue != null) {
  867. orderItem.setSku((String)jsonParserFieldValue);
  868. }
  869. }
  870. else if (Objects.equals(
  871. jsonParserFieldName, "skuExternalReferenceCode")) {
  872. if (jsonParserFieldValue != null) {
  873. orderItem.setSkuExternalReferenceCode(
  874. (String)jsonParserFieldValue);
  875. }
  876. }
  877. else if (Objects.equals(jsonParserFieldName, "skuId")) {
  878. if (jsonParserFieldValue != null) {
  879. orderItem.setSkuId(
  880. Long.valueOf((String)jsonParserFieldValue));
  881. }
  882. }
  883. else if (Objects.equals(jsonParserFieldName, "subscription")) {
  884. if (jsonParserFieldValue != null) {
  885. orderItem.setSubscription((Boolean)jsonParserFieldValue);
  886. }
  887. }
  888. else if (Objects.equals(jsonParserFieldName, "unitOfMeasure")) {
  889. if (jsonParserFieldValue != null) {
  890. orderItem.setUnitOfMeasure((String)jsonParserFieldValue);
  891. }
  892. }
  893. else if (Objects.equals(jsonParserFieldName, "unitPrice")) {
  894. if (jsonParserFieldValue != null) {
  895. orderItem.setUnitPrice(
  896. new BigDecimal((String)jsonParserFieldValue));
  897. }
  898. }
  899. else if (Objects.equals(
  900. jsonParserFieldName, "unitPriceWithTaxAmount")) {
  901. if (jsonParserFieldValue != null) {
  902. orderItem.setUnitPriceWithTaxAmount(
  903. new BigDecimal((String)jsonParserFieldValue));
  904. }
  905. }
  906. }
  907. }
  908. private static String _escape(Object object) {
  909. String string = String.valueOf(object);
  910. for (String[] strings : BaseJSONParser.JSON_ESCAPE_STRINGS) {
  911. string = string.replace(strings[0], strings[1]);
  912. }
  913. return string;
  914. }
  915. private static String _toJSON(Map<String, ?> map) {
  916. StringBuilder sb = new StringBuilder("{");
  917. @SuppressWarnings("unchecked")
  918. Set set = map.entrySet();
  919. @SuppressWarnings("unchecked")
  920. Iterator<Map.Entry<String, ?>> iterator = set.iterator();
  921. while (iterator.hasNext()) {
  922. Map.Entry<String, ?> entry = iterator.next();
  923. sb.append("\"");
  924. sb.append(entry.getKey());
  925. sb.append("\": ");
  926. Object value = entry.getValue();
  927. Class<?> valueClass = value.getClass();
  928. if (value instanceof Map) {
  929. sb.append(_toJSON((Map)value));
  930. }
  931. else if (valueClass.isArray()) {
  932. Object[] values = (Object[])value;
  933. sb.append("[");
  934. for (int i = 0; i < values.length; i++) {
  935. sb.append("\"");
  936. sb.append(_escape(values[i]));
  937. sb.append("\"");
  938. if ((i + 1) < values.length) {
  939. sb.append(", ");
  940. }
  941. }
  942. sb.append("]");
  943. }
  944. else if (value instanceof String) {
  945. sb.append("\"");
  946. sb.append(_escape(entry.getValue()));
  947. sb.append("\"");
  948. }
  949. else {
  950. sb.append(String.valueOf(entry.getValue()));
  951. }
  952. if (iterator.hasNext()) {
  953. sb.append(", ");
  954. }
  955. }
  956. sb.append("}");
  957. return sb.toString();
  958. }
  959. }