]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.support.jcr/src/main/java/org/argeo/slc/jcr/dao/TreeTestResultDaoJcr.java
Improve JCR
[gpl/argeo-slc.git] / runtime / org.argeo.slc.support.jcr / src / main / java / org / argeo / slc / jcr / dao / TreeTestResultDaoJcr.java
index df0a8f507747f4fc963c9eb7b368c0ed7ece13f4..71bdf529a02a41998a9f138fcb2ce6f96e988138 100644 (file)
@@ -208,14 +208,41 @@ public class TreeTestResultDaoJcr extends AbstractSlcJcrDao implements
                                        // We add the tags\r
                                        Map<String, String> tags = relatedElements.get(key)\r
                                                        .getTags();\r
+\r
                                        for (String tag : tags.keySet()) {\r
-                                               String cleanTag = JcrUtils\r
-                                                               .removeForbiddenCharacters(tag);\r
-                                               if (!cleanTag.equals(tag))\r
-                                                       log.warn("Tag '" + tag + "' persisted as '"\r
-                                                                       + cleanTag + "'");\r
-                                               curNode.setProperty(cleanTag, tags.get(tag));\r
+                                               NodeIterator tagIt = curNode.getNodes("tag");\r
+                                               Node tagNode = null;\r
+                                               while (tagIt.hasNext()) {\r
+                                                       Node n = tagIt.nextNode();\r
+                                                       if (n.getProperty("name").getString().equals(tag)) {\r
+                                                               tagNode = n;\r
+                                                       }\r
+                                               }\r
+\r
+                                               if (tagNode == null) {\r
+                                                       tagNode = curNode.addNode("tag");\r
+                                                       tagNode.setProperty("name", tag);\r
+                                               }\r
+\r
+                                               tagNode.setProperty("value", tags.get(tag));\r
+\r
+                                               // remove forbidden characters\r
+                                               // String cleanTag =\r
+                                               // JcrUtils.removeForbiddenCharacters(tag);\r
+                                               // if (!cleanTag.equals(tag))\r
+                                               // log.warn("Tag '" + tag + "' persisted as '" +\r
+                                               // cleanTag\r
+                                               // + "'");\r
+                                               // childNode.setProperty(cleanTag, tags.get(tag));\r
                                        }\r
+                                       // for (String tag : tags.keySet()) {\r
+                                       // String cleanTag = JcrUtils\r
+                                       // .removeForbiddenCharacters(tag);\r
+                                       // if (!cleanTag.equals(tag))\r
+                                       // log.warn("Tag '" + tag + "' persisted as '"\r
+                                       // + cleanTag + "'");\r
+                                       // curNode.setProperty(cleanTag, tags.get(tag));\r
+                                       // }\r
 \r
                                        // We set the class in order to be able to retrieve\r
                                        curNode.setProperty("class", StructureElement.class\r