Select Git revision
Unl2Rdf.java
Unl2Rdf.java 2.57 KiB
package unl2rdf;
import fr.tetras_libre.unltools.rdf.vocabulary.RdfFileBuilder;
import fr.tetras_libre.unltools.unl.GraphExporter;
import fr.tetras_libre.unltools.unl.UnlDocument;
import fr.tetras_libre.unltools.unl.parser.ParseException;
import fr.tetras_libre.unltools.unl.parser.UnlParser;
import fr.tetras_libre.unltools.unl.print.dotFile.DotFileBuilder;
import picocli.CommandLine;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;
public class Unl2Rdf {
public static void main(String[] args) throws ParseException, IOException {
Options options = new Options();
try {
CommandLine.ParseResult parseResult = new CommandLine(options).parseArgs(args);
if (!CommandLine.printHelpIfRequested(parseResult)) {
runProgram(options);
}
} catch (CommandLine.ParameterException e) {
System.err.println(e.getMessage());
e.getCommandLine().usage(System.err);
}
}
private static void runProgram(Options options) throws ParseException, IOException {
System.out.println(String.format("Source file : '%s'", options.getInputFile().getAbsolutePath()));
BufferedReader bufferedReader = new BufferedReader(options.getInputStream());
UnlParser parser = new UnlParser(bufferedReader);
Vector<UnlDocument> documents = parser.createUnlDocumentList();
for (OutFileType outType : options.getOutputFileType()) {
String extension = ToExtension(outType);
String outfileName = options.getOutputFile() + extension;
FileWriter fileWriter = new FileWriter(outfileName, false);
GetExporter(outType, fileWriter).write(documents);
fileWriter.close();
System.out.println(String.format("Graph writen into file '%s'", outfileName));
}
}
private static String ToExtension(OutFileType outFileType) {
switch (outFileType) {
case rdf:
return ".ttl";
case dot:
return ".dot";
}
throw new IllegalArgumentException(String.format("unknown fileType '%s", outFileType.toString()));
}
private static GraphExporter GetExporter(OutFileType fileType, FileWriter writer) {
switch (fileType) {
case rdf:
return new RdfFileBuilder(writer);
case dot:
return new DotFileBuilder(writer);
}
throw new IllegalArgumentException(String.format("unknown fileType '%s", fileType.toString()));
}
}