blob: a7fb04502519cf100329ce1ca1721739954c6526 [file] [log] [blame]
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;
}
}