// 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