1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.any23.cli;
19
20 import org.apache.any23.vocab.RDFSchemaUtils;
21 import org.eclipse.rdf4j.rio.RDFFormat;
22 import org.eclipse.rdf4j.rio.RDFWriterRegistry;
23 import org.eclipse.rdf4j.rio.Rio;
24
25 import com.beust.jcommander.IStringConverter;
26 import com.beust.jcommander.Parameter;
27 import com.beust.jcommander.Parameters;
28
29 import java.io.PrintStream;
30
31
32
33
34
35
36 @Parameters(commandNames = {
37 "vocab" }, commandDescription = "Prints out the RDF Schema of the vocabularies used by Any23.")
38 public class VocabPrinter extends BaseTool {
39
40 @Parameter(names = { "-f",
41 "--format" }, description = "Vocabulary output format", converter = RDFFormatConverter.class)
42 private RDFFormat format = RDFFormat.NQUADS;
43
44 private PrintStream out = System.out;
45
46 @Override
47 PrintStream getOut() {
48 return out;
49 }
50
51 @Override
52 void setOut(PrintStream out) {
53 this.out = out;
54 }
55
56 public void run() throws Exception {
57 RDFSchemaUtils.serializeVocabularies(format, out);
58 }
59
60 public static final class RDFFormatConverter implements IStringConverter<RDFFormat> {
61
62 @Override
63 public RDFFormat convert(String value) {
64 return RDFWriterRegistry.getInstance().getFileFormatForMIMEType(value)
65 .orElseThrow(Rio.unsupportedFormat(value));
66 }
67
68 }
69
70 }