{
@Override
protected Status compute()
{
final Value<?> value = context( Value.class );
final Path path = (Path) value.content( false );
if( path != null )
{
final File f = path.toFile();
if( f.exists() )
{
if( this.validResourceType == FileSystemResourceType.FILE )
{
if( f.isFile() )
{
return validateExtensions( path );
}
else
{
final String message = pathIsNotFile.format( path.toString() );
return Status.createErrorStatus( message );
}
}
else if( this.validResourceType == FileSystemResourceType.FOLDER )
{
if( ! f.isDirectory() )
{
final String message = pathIsNotFolder.format( path.toString() );
return Status.createErrorStatus( message );
}
}
}
else
{
if( this.resourceMustExist )
{
if( this.validResourceType == FileSystemResourceType.FILE )
{
final String message = fileMustExist.format( path.toString() );
return Status.createErrorStatus( message );
}
else if( this.validResourceType == FileSystemResourceType.FOLDER )
{
final String message = folderMustExist.format( path.toString() );
return Status.createErrorStatus( message );
}
else
{
final String message = resourceMustExistMessage.format( path.toString() );
return Status.createErrorStatus( message );
}
}
}
}