@Override
    public Comparison compare(final Path.Type type, final PathAttributes local, final PathAttributes remote) {
        switch(type) {
            case directory:
                if(log.isDebugEnabled()) {
                    log.debug(String.format("Compare local attributes %s with remote %s using %s", local, remote, directories));
                }
                return directories.compare(type, local, remote);
            case symboliclink:
                return symlinks.compare(type, local, remote);
            default:
                if(log.isDebugEnabled()) {
                    log.debug(String.format("Compare local attributes %s with remote %s using %s", local, remote, files));
                }
                return files.compare(type, local, remote);
        }
    }
@Test
    public void testCompareSymlink() {
        final DefaultComparisonService c = new DefaultComparisonService(new TestProtocol());
        assertEquals(Comparison.equal, c.compare(Path.Type.symboliclink, new PathAttributes().withModificationDate(1680879106939L), new PathAttributes().withModificationDate(1680879106939L)));
        assertEquals(Comparison.local, c.compare(Path.Type.symboliclink, new PathAttributes().withModificationDate(1680879107939L), new PathAttributes().withModificationDate(1680879106939L)));
    }