Skip to content
Snippets Groups Projects
Select Git revision
  • 017f1b77ad2d6f10b11be6737048fcedbdf27857
  • master default protected
  • 12-dot-genere-non-coherent
  • unl-tools-release-0.9
  • v0.9
5 results

Unl2Rdf.java

Blame
  • sebastien curt's avatar
    Sebastien authored
    + code rearrangement
    017f1b77
    History
    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()));
        }
    
    }