You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:46:40 UTC

[sling-org-apache-sling-jcr-contentloader] 14/36: Create path if it is not existend

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.jcr.contentloader-2.0.4-incubator
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git

commit bb27019a34f4e478488f93dd791e8b8fe3d95116
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Wed Jun 25 15:52:27 2008 +0000

    Create path if it is not existend
    
    
    git-svn-id: https://svn.apache.org/repos/asf/incubator/sling/trunk/jcr/contentloader@671589 13f79535-47bb-0310-9956-ffa450edef68
---
 .../apache/sling/jcr/contentloader/internal/Loader.java   | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
index fa7c191..46af1f8 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
@@ -35,6 +35,7 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import javax.jcr.InvalidSerializedDataException;
 import javax.jcr.Item;
@@ -557,9 +558,21 @@ public class Loader {
 
         int firstSlash = path.indexOf("/");
 
-        // it´s a relative path
+        // it's a relative path
         if (firstSlash != 0) path = "/" + path;
 
+        if ( !session.itemExists(path) ) {
+            Node currentNode = session.getRootNode();
+            final StringTokenizer st = new StringTokenizer(path.substring(1), "/");
+            while ( st.hasMoreTokens() ) {
+                final String name = st.nextToken();
+                if ( !currentNode.hasNode(name) ) {
+                    currentNode.addNode(name, "nt:folder");
+                }
+                currentNode = currentNode.getNode(name);
+            }
+            return currentNode;
+        }
         Item item = session.getItem(path);
         return (item.isNode()) ? (Node) item : null;
     }

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.