public boolean isChild(final Path directory) {
        if(directory.isFile()) {
            // If a file we don't have any children at all
            return false;
        }
        return new SimplePathPredicate(this).isChild(new SimplePathPredicate(directory));
    }
@Test
    public void testIsChild() {
        Path p = new Path("/a/t", EnumSet.of(Path.Type.file));
        assertTrue(p.isChild(new Path("/a", EnumSet.of(Path.Type.directory))));
        assertTrue(p.isChild(new Path("/", EnumSet.of(Path.Type.directory))));
        assertFalse(p.isChild(new Path("/a", EnumSet.of(Path.Type.file))));
        final Path d = new Path("/a", EnumSet.of(Path.Type.directory));
        d.attributes().setVersionId("1");
        assertTrue(p.isChild(d));
    }