| package joptsimple.util; |
| |
| import java.nio.file.Files; |
| import java.nio.file.Path; |
| |
| /** |
| * Enum for checking common conditions of files and directories. |
| * |
| * @see joptsimple.util.PathConverter |
| */ |
| public enum PathProperties { |
| FILE_EXISTING( "file.existing" ) { |
| @Override |
| boolean accept( Path path ) { |
| return Files.isRegularFile( path ); |
| } |
| }, |
| DIRECTORY_EXISTING( "directory.existing" ) { |
| @Override |
| boolean accept( Path path ) { |
| return Files.isDirectory( path ); |
| } |
| }, |
| NOT_EXISTING( "file.not.existing" ) { |
| @Override |
| boolean accept( Path path ) { |
| return Files.notExists( path ); |
| } |
| }, |
| FILE_OVERWRITABLE( "file.overwritable" ) { |
| @Override |
| boolean accept( Path path ) { |
| return FILE_EXISTING.accept( path ) && WRITABLE.accept( path ); |
| } |
| }, |
| READABLE( "file.readable" ) { |
| @Override |
| boolean accept( Path path ) { |
| return Files.isReadable( path ); |
| } |
| }, |
| WRITABLE( "file.writable" ) { |
| @Override |
| boolean accept( Path path ) { |
| return Files.isWritable( path ); |
| } |
| }; |
| |
| private final String messageKey; |
| |
| private PathProperties( String messageKey ) { |
| this.messageKey = messageKey; |
| } |
| |
| abstract boolean accept( Path path ); |
| |
| String getMessageKey() { |
| return messageKey; |
| } |
| } |