@NotNull @Override public Iterable<String> getChildNodeNames() { return filter( builder.getChildNodeNames(), input -> input != null && getChildNode(input).exists()); }
@Override public boolean hasChildNode(@NotNull String name) { if (builder.hasChildNode(name)) { return getChildNode(name).exists(); } else { return false; } }
@Override public boolean exists() { return builder.exists() && (builder.isReplaced() || getTreePermission().canRead()); }
private NodeBuilder getNode(String path) { NodeBuilder node = builder; for (String name : PathUtils.elements(path)) { node = node.getChildNode(name); } if (!node.exists()) { throw new IllegalStateException("node does not exist: " + path); } return node; }
@Test public void testNewStatus() { NodeBuilder root = base.builder(); NodeBuilder n = root.child("n"); assertTrue(n.exists()); assertTrue(n.isNew()); assertFalse(n.isModified()); }
@Test public void testExistingStatus() { NodeBuilder root = base.builder(); NodeBuilder x = root.child("x"); assertTrue(x.exists()); assertFalse(x.isNew()); assertFalse(x.isModified()); }
@Test public void addExistingChildTest() { NodeBuilder rootBuilder = base.builder(); NodeBuilder x = rootBuilder.setChildNode("x"); assertTrue(x.exists()); assertTrue(x.getBaseState().exists()); }
@Test public void getExistingChildTest() { NodeBuilder rootBuilder = base.builder(); NodeBuilder x = rootBuilder.getChildNode("x"); assertTrue(x.exists()); assertTrue(x.getNodeState().exists()); }
@Test public void newChildTest() { NodeBuilder rootBuilder = base.builder(); NodeBuilder x = rootBuilder.child("any"); assertTrue(x.exists()); assertTrue(x.getNodeState().exists()); }
@Test public void addNewChildTest() { NodeBuilder rootBuilder = base.builder(); NodeBuilder x = rootBuilder.setChildNode("any"); assertTrue(x.exists()); assertTrue(x.getNodeState().exists()); }
@Test public void existingChildTest() { NodeBuilder rootBuilder = base.builder(); NodeBuilder x = rootBuilder.child("x"); assertTrue(x.exists()); assertTrue(x.getBaseState().exists()); }
@Test public void testRemovedStatus() { NodeBuilder root = base.builder(); NodeBuilder x = root.child("x"); root.getChildNode("x").remove(); assertFalse(x.exists()); assertFalse(x.isNew()); assertFalse(x.isModified()); }
public static void removeVersionProperties(NodeBuilder versionableBuilder, TypePredicate isReferenceable) { assert versionableBuilder.exists(); removeMixin(versionableBuilder, MIX_VERSIONABLE); // we don't know if the UUID is otherwise referenced, // so make sure the node remains referencable if (!isReferenceable.apply(versionableBuilder.getNodeState())) { addMixin(versionableBuilder, MIX_REFERENCEABLE); } versionableBuilder.removeProperty(JCR_VERSIONHISTORY); versionableBuilder.removeProperty(JCR_PREDECESSORS); versionableBuilder.removeProperty(JCR_BASEVERSION); versionableBuilder.removeProperty(JCR_ISCHECKEDOUT); }
@Test public void removeParent() { NodeBuilder x = base.builder().getChildNode("x"); NodeBuilder y = x.setChildNode("y"); x.remove(); assertFalse(x.exists()); }
@Test public void move() { NodeBuilder test = store.getRoot().builder().getChildNode("test"); NodeBuilder x = test.getChildNode("x"); NodeBuilder y = test.getChildNode("y"); assertTrue(x.moveTo(y, "xx")); assertFalse(x.exists()); assertTrue(y.exists()); assertFalse(test.hasChildNode("x")); assertTrue(y.hasChildNode("xx")); }
@Test public void renameNonExisting() { NodeBuilder test = store.getRoot().builder().getChildNode("test"); NodeBuilder any = test.getChildNode("any"); assertFalse(any.moveTo(test, "xx")); assertFalse(any.exists()); assertFalse(test.hasChildNode("xx")); }
@Test public void moveToSelf() { NodeBuilder test = store.getRoot().builder().getChildNode("test"); NodeBuilder x = test.getChildNode("x"); assertFalse(x.moveTo(test, "x")); assertTrue(x.exists()); assertTrue(test.hasChildNode("x")); }
@Test public void moveToExisting() { NodeBuilder test = store.getRoot().builder().getChildNode("test"); NodeBuilder x = test.getChildNode("x"); assertFalse(x.moveTo(test, "y")); assertTrue(x.exists()); assertTrue(test.hasChildNode("x")); assertTrue(test.hasChildNode("y")); }
@Test public void renameToExisting() { NodeBuilder test = store.getRoot().builder().getChildNode("test"); NodeBuilder x = test.getChildNode("x"); assertFalse(x.moveTo(test, "y")); assertTrue(x.exists()); assertTrue(test.hasChildNode("x")); assertTrue(test.hasChildNode("y")); }