
net.morimekta.terminal.args.parser.FileParser Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of terminal Show documentation
Show all versions of terminal Show documentation
Utilities handling specialized terminal input and output.
The newest version!
package net.morimekta.terminal.args.parser;
import net.morimekta.terminal.args.ArgException;
import net.morimekta.terminal.args.ValueParser;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* A converter to file instances, with validator & error message.
*/
public class FileParser implements ValueParser {
@Override
public Path parse(String s) {
Path result = Paths.get(s);
try {
if (!Files.exists(result)) {
throw new ArgException("No such file %s", s);
}
var real = result.toAbsolutePath().toRealPath();
if (!Files.isRegularFile(real)) {
throw new ArgException("%s is not a file", s);
}
} catch (IOException e) {
throw new ArgException("%s is not a valid path", s, e);
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy