Author: cziegeler
Date: Wed Jun 25 08:52:27 2008
New Revision: 671589

URL: http://svn.apache.org/viewvc?rev=671589&view=rev
Log:
Create path if it is not existend

Modified:
    
incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java

Modified: 
incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
URL: 
http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java?rev=671589&r1=671588&r2=671589&view=diff
==============================================================================
--- 
incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
 (original)
+++ 
incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/Loader.java
 Wed Jun 25 08:52:27 2008
@@ -35,6 +35,7 @@
 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 @@
 
         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;
     }


Reply via email to