From 325a70b0723b6a0bff98c790401b6dea1ea59607 Mon Sep 17 00:00:00 2001 From: Alexandre Oliveira Date: Mon, 4 Mar 2019 12:04:54 -0300 Subject: [PATCH] - Export/Import MultiSelect (ArrayValue) --- .../viglet/shiohara/exchange/post/ShPostExport.java | 9 ++++++--- .../viglet/shiohara/exchange/post/ShPostImport.java | 12 +++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/viglet/shiohara/exchange/post/ShPostExport.java b/src/main/java/com/viglet/shiohara/exchange/post/ShPostExport.java index 874af5dd4..4f572e8f6 100644 --- a/src/main/java/com/viglet/shiohara/exchange/post/ShPostExport.java +++ b/src/main/java/com/viglet/shiohara/exchange/post/ShPostExport.java @@ -52,8 +52,8 @@ public void shPostAttrExchangeIterate(ShPost shPost, Set shPostAttrs if (shPostAttr != null && shPostAttr.getShPostTypeAttr() != null) { if (shPostAttr.getShPostTypeAttr().getShWidget().getName().equals(ShSystemWidget.RELATOR)) { ShRelatorExchange shRelatorExchange = new ShRelatorExchange(); - shRelatorExchange.setId(shPostAttr.getId()); - shRelatorExchange.setName(shPostAttr.getStrValue()); + shRelatorExchange.setId(shPostAttr.getId()); + shRelatorExchange.setName(shPostAttr.getStrValue()); ShRelatorItemExchanges relators = new ShRelatorItemExchanges(); for (ShRelatorItem shRelatorItem : shPostAttr.getShChildrenRelatorItems()) { ShRelatorItemExchange shRelatorItemExchange = new ShRelatorItemExchange(); @@ -67,7 +67,10 @@ public void shPostAttrExchangeIterate(ShPost shPost, Set shPostAttrs shRelatorExchange.setShSubPosts(relators); fields.put(shPostAttr.getShPostTypeAttr().getName(), shRelatorExchange); } else { - fields.put(shPostAttr.getShPostTypeAttr().getName(), shPostAttr.getStrValue()); + if (!shPostAttr.getArrayValue().isEmpty()) + fields.put(shPostAttr.getShPostTypeAttr().getName(), shPostAttr.getArrayValue()); + else + fields.put(shPostAttr.getShPostTypeAttr().getName(), shPostAttr.getStrValue()); } if (shPostAttr.getShPostTypeAttr().getName().equals(ShSystemPostTypeAttr.FILE) diff --git a/src/main/java/com/viglet/shiohara/exchange/post/ShPostImport.java b/src/main/java/com/viglet/shiohara/exchange/post/ShPostImport.java index 7db2adee8..bf19e55cb 100644 --- a/src/main/java/com/viglet/shiohara/exchange/post/ShPostImport.java +++ b/src/main/java/com/viglet/shiohara/exchange/post/ShPostImport.java @@ -19,6 +19,8 @@ import java.io.File; import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; import java.util.LinkedHashMap; import java.util.Map; import java.util.Map.Entry; @@ -203,9 +205,9 @@ private void createShPostAttrs(ShPostExchange shPostExchange, ShPost shPost, Map ObjectMapper mapper = new ObjectMapper(); ObjectWriter ow = mapper.writer().withDefaultPrettyPrinter(); - String subPostsJson = ow.writeValueAsString(relatorFields.get("shSubPosts")); + String subPostsJson = ow.writeValueAsString(relatorFields.get("shSubPosts")); ShRelatorItemExchanges subPosts = mapper.readValue(subPostsJson, ShRelatorItemExchanges.class); - + for (ShRelatorItemExchange shSubPost : subPosts) { ShRelatorItem shRelatorItem = new ShRelatorItem(); shRelatorItem.setOrdinal(shSubPost.getPosition()); @@ -218,7 +220,11 @@ private void createShPostAttrs(ShPostExchange shPostExchange, ShPost shPost, Map } } else { ShPostAttr shPostAttr = new ShPostAttr(); - shPostAttr.setStrValue((String) shPostField.getValue()); + System.out.println(shPostField.getValue() != null ? shPostField.getValue().getClass().getName() : null); + if (shPostField.getValue() instanceof ArrayList) + shPostAttr.setArrayValue((new HashSet((ArrayList) shPostField.getValue()))); + else + shPostAttr.setStrValue((String) shPostField.getValue()); if (shParentRelatorItem != null) { shPostAttr.setShPost(null);