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;
}