@Override
    public boolean resolve(final Path file) {
        if(PreferencesFactory.get().getBoolean("path.symboliclink.resolve")) {
            // Follow links instead
            return false;
        }
        // Create symbolic link only if supported by the local file system
        if(feature != null) {
            final Path target = file.getSymlinkTarget();
            // Only create symbolic link if target is included in the download
            for(TransferItem root : files) {
                if(this.findTarget(target, root.remote)) {
                    if(log.isDebugEnabled()) {
                        log.debug(String.format("Resolved target %s for %s", target, file));
                    }
                    // Create symbolic link
                    return true;
                }
            }
        }
        // Otherwise download target file
        return false;
    }
@Test
    public void testNotSupported() {
        DownloadSymlinkResolver resolver = new DownloadSymlinkResolver(null, Collections.singletonList(
                new TransferItem(new Path("/", EnumSet.of(Path.Type.directory)), new Local(System.getProperty("java.io.tmpdir")))
        ));
        Path p = new Path("/a", EnumSet.of(Path.Type.file, AbstractPath.Type.symboliclink));
        assertFalse(resolver.resolve(p));
    }