有没有一些简单的方法可以用 JCR 2.0 中的另一个节点替换现有节点?
由于节点的顺序,目前我正在执行以下步骤:
第 1 步:找到我要替换的现有节点之后的兄弟节点:
if (preserveOrdering) {
NodeIterator iter = parent.getNodes();
boolean found = false;
while (iter.hasNext()) {
if (tempNode.equals(iter.nextNode())) {
found = true;
if (iter.hasNext()) {
tempNodeSibling = iter.nextNode();
break;
}
}
}
assert found;
}
第2步:删除现有节点:
tempNode.remove();
步骤3:创建新节点(我正在克隆,但可能可以使用node.addNode()方法,新节点附加到子节点列表的末尾):
workspace.clone(workspace.getName(), existingNodePath, tempNodePath, false);
第 4 步:将新节点移到他的旧 tempNode 兄弟之前(在第一步中记住)
parent.orderBefore(tempNodeName, tempNodeSibling.getName());
所有这些步骤在我看来都很麻烦。但我在 JCR API 中找不到更好的方法。主要是因为只有一种方法 orderBefore() 用于排序。
你认为有一些不同/更简单的方法可以解决这个问题吗?