package com.jakewharton.resourcefs; import java.nio.file.FileSystem; import java.nio.file.Path; import java.nio.file.attribute.BasicFileAttributes; import java.nio.file.attribute.FileTime; import static java.util.concurrent.TimeUnit.SECONDS; final class ResourceFileAttributes implements BasicFileAttributes { private static final FileTime TIME = FileTime.from(0, SECONDS); private final Path path; private final FileSystem fileSystem; ResourceFileAttributes(Path path, FileSystem fileSystem) { this.path = path; this.fileSystem = fileSystem; } @Override public FileTime lastModifiedTime() { return TIME; } @Override public FileTime lastAccessTime() { return TIME; } @Override public FileTime creationTime() { return TIME; } @Override public boolean isRegularFile() { return !isDirectory(); } @Override public boolean isDirectory() { return path.toUri().toString().endsWith(fileSystem.getSeparator()); } @Override public boolean isSymbolicLink() { return false; } @Override public boolean isOther() { return false; } @Override public long size() { return 4096; // This value ends up being used for a read buffer size. } @Override public Object fileKey() { return null; } }