X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=jcr%2Forg.argeo.cms.jcr%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjcr%2Facr%2FJcrContentUtils.java;h=af2d782e8fc9592bd61ff1e5ae230bd140df82ea;hb=87351c5000313de237947d57d6c328d07bad0c40;hp=702f4d6ba36fc91d6bbe6ea6a5252c5bbca79509;hpb=c0342975a37c70895c2e8f6b341d790700168d7f;p=lgpl%2Fargeo-commons.git diff --git a/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentUtils.java b/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentUtils.java index 702f4d6ba..af2d782e8 100644 --- a/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentUtils.java +++ b/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContentUtils.java @@ -42,7 +42,7 @@ import org.xml.sax.SAXException; public class JcrContentUtils { private final static CmsLog log = CmsLog.getLog(JcrContentUtils.class); - public static void copyFiles(Node folder, Content collection) { + public static void copyFiles(Node folder, Content collection, String... additionalCollectionTypes) { try { nodes: for (NodeIterator it = folder.getNodes(); it.hasNext();) { Node node = it.nextNode(); @@ -54,8 +54,16 @@ public class JcrContentUtils { } } else if (node.isNodeType(NodeType.NT_FOLDER)) { Content subCol = collection.add(name, CrName.collection.qName()); - copyFiles(node, subCol); + copyFiles(node, subCol, additionalCollectionTypes); } else { + for (String collectionType : additionalCollectionTypes) { + if (node.isNodeType(collectionType)) { + Content subCol = collection.add(name, CrName.collection.qName()); + copyFiles(node, subCol, additionalCollectionTypes); + continue nodes; + } + } + QName qName = NamespaceUtils.parsePrefixedName(name); if (NamespaceUtils.hasNamespace(qName)) { if (node.getIndex() > 1) { @@ -130,11 +138,11 @@ public class JcrContentUtils { String namespaceUri = attr.getValue(); if (!namespaceUris.contains(namespaceUri)) { toRemove.add(attr); - //log.debug("Removing "+i+" " + namespaceUri); + // log.debug("Removing "+i+" " + namespaceUri); } } } - for(Attr attr:toRemove) + for (Attr attr : toRemove) documentElement.removeAttributeNode(attr); }