- if (session.itemExists(path)) {
- Item item = session.getItem(path);
- if (!item.isNode())
- throw new ArgeoException("An item exist under " + path
- + " but it is not a node: " + item);
- node = (Node) item;
- } else {
- String parentPath = JcrUtils.parentPath(path);
- Node parentNode;
- if (session.itemExists(path))
- parentNode = (Node) session.getItem(parentPath);
- else
- parentNode = JcrUtils.mkdirs(session, parentPath, null,
- versioning);
- // create node
- if (primaryNodeType != null)
- node = parentNode.addNode(JcrUtils.lastPathElement(path),
- primaryNodeType);
- else
- node = parentNode.addNode(JcrUtils.lastPathElement(path));
- }
+ String parentPath = JcrUtils.parentPath(path);
+ // find or create parent node
+ Node parentNode;
+ if (session.itemExists(path))
+ parentNode = (Node) session.getItem(parentPath);
+ else
+ parentNode = JcrUtils.mkdirs(session, parentPath, null,
+ versioning);
+ // create node
+ if (primaryNodeType != null)
+ node = parentNode.addNode(JcrUtils.lastPathElement(path),
+ primaryNodeType);
+ else
+ node = parentNode.addNode(JcrUtils.lastPathElement(path));