blob: 77d0a62521100b81f5c06bfec12579d0f07113a6 [file] [log] [blame]
package org.apache.maven.filesystem;
import java.io.IOException;
import java.nio.file.FileStore;
import java.nio.file.FileSystem;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.nio.file.WatchService;
import java.nio.file.attribute.UserPrincipalLookupService;
import java.nio.file.spi.FileSystemProvider;
import java.util.Set;
public class BasedirFileSystem extends FileSystem
{
private final FileSystem fileSystem;
public BasedirFileSystem( FileSystem fileSystem )
{
this.fileSystem = fileSystem;
}
@Override
public int hashCode()
{
return fileSystem.hashCode();
}
@Override
public boolean equals( Object obj )
{
return fileSystem.equals( obj );
}
@Override
public FileSystemProvider provider()
{
return fileSystem.provider();
}
@Override
public void close()
throws IOException
{
fileSystem.close();
}
@Override
public boolean isOpen()
{
return fileSystem.isOpen();
}
@Override
public boolean isReadOnly()
{
return fileSystem.isReadOnly();
}
@Override
public String getSeparator()
{
return fileSystem.getSeparator();
}
@Override
public Iterable<Path> getRootDirectories()
{
return fileSystem.getRootDirectories();
}
@Override
public Iterable<FileStore> getFileStores()
{
return fileSystem.getFileStores();
}
@Override
public String toString()
{
return fileSystem.toString();
}
@Override
public Set<String> supportedFileAttributeViews()
{
return fileSystem.supportedFileAttributeViews();
}
@Override
public Path getPath( String first, String... more )
{
Path p = fileSystem.getPath( first, more );
ClassLoader cl = Thread.currentThread().getContextClassLoader();
if ( cl instanceof BasedirClassLoader )
{
p = new BasedirPath( p, ( (BasedirClassLoader) cl ).getBasedir() );
}
return p;
}
@Override
public PathMatcher getPathMatcher( String syntaxAndPattern )
{
return fileSystem.getPathMatcher( syntaxAndPattern );
}
@Override
public UserPrincipalLookupService getUserPrincipalLookupService()
{
return fileSystem.getUserPrincipalLookupService();
}
@Override
public WatchService newWatchService()
throws IOException
{
return fileSystem.newWatchService();
}
}