return true; boolean filterIsChildOfTree = NodeRef.isDirectChild(treePath, filter); if (filterIsChildOfTree) { return true;
return true; boolean filterIsChildOfTree = NodeRef.isDirectChild(treePath, filter); if (filterIsChildOfTree) { return true;
/** * Test method for {@link org.locationtech.geogig.model.Node#isDirectChild(String, String)} */ @Test public void testIsDirectChild() { assertFalse(isDirectChild("", "")); assertTrue(isDirectChild("", "path")); assertFalse(isDirectChild("", "path/to")); assertFalse(isDirectChild("path", "path")); assertFalse(isDirectChild("path", "")); assertTrue(isDirectChild("path", "path/to")); assertFalse(isDirectChild("path", "path/to/node")); assertFalse(isDirectChild("path/to", "")); assertFalse(isDirectChild("path/to", "path")); assertFalse(isDirectChild("path/to", "path/to")); assertFalse(isDirectChild("path/to", "path2/to")); assertTrue(isDirectChild("path/to", "path/to/node")); assertTrue(isDirectChild("roads", "roads/highway")); assertFalse(isDirectChild("roads/highway", "roads")); }
@Override public int compare(DiffEntry left, DiffEntry right) { final NodeRef nodeRef1 = left.oldObject().or(left.newObject()).get(); final NodeRef nodeRef2 = right.oldObject().or(right.newObject()).get(); if (nodeRef1.getType().equals(nodeRef2.getType())) { return CanonicalNodeOrder.INSTANCE.compare(nodeRef1.getNode(), nodeRef2.getNode()); } // one is a tree, the other a feature. // the tree comes first if it's a feature's parent boolean leftIsRightsParent = NodeRef.isChild(nodeRef1.path()/* parent */, nodeRef2.path()/* child */); if (leftIsRightsParent) { return -1; } boolean rightIsLeftsParent = NodeRef.isDirectChild(nodeRef2.path()/* parent */, nodeRef1.path()/* child */); if (rightIsLeftsParent) { return 1; } // feature wins (got a new tree on one end while all features of the previous tree // haven't been consumed) return nodeRef1.getType() == TYPE.FEATURE ? -1 : 1; } };
@Override public int compare(DiffEntry left, DiffEntry right) { final NodeRef nodeRef1 = left.oldObject().or(left.newObject()).get(); final NodeRef nodeRef2 = right.oldObject().or(right.newObject()).get(); if (nodeRef1.getType().equals(nodeRef2.getType())) { return CanonicalNodeOrder.INSTANCE.compare(nodeRef1.getNode(), nodeRef2.getNode()); } // one is a tree, the other a feature. // the tree comes first if it's a feature's parent boolean leftIsRightsParent = NodeRef.isChild(nodeRef1.path()/* parent */, nodeRef2.path()/* child */); if (leftIsRightsParent) { return -1; } boolean rightIsLeftsParent = NodeRef.isDirectChild(nodeRef2.path()/* parent */, nodeRef1.path()/* child */); if (rightIsLeftsParent) { return 1; } // feature wins (got a new tree on one end while all features of the previous tree // haven't been consumed) return nodeRef1.getType() == TYPE.FEATURE ? -1 : 1; } };