Search in sources :

Example 1 with CmdLineArgs

use of org.apache.jena.cmd.CmdLineArgs in project jena by apache.

the class TestCmdLine method test_Arg1.

@Test
public void test_Arg1() {
    String[] args = new String[] { "" };
    CmdLineArgs cl = new CmdLineArgs(args);
    ArgDecl argA = new ArgDecl(true, "-arg");
    cl.add(argA);
    cl.process();
    assertTrue("-arg argument found", !cl.contains(argA));
}
Also used : ArgDecl(org.apache.jena.cmd.ArgDecl) CmdLineArgs(org.apache.jena.cmd.CmdLineArgs) Test(org.junit.Test)

Example 2 with CmdLineArgs

use of org.apache.jena.cmd.CmdLineArgs in project jena by apache.

the class TestCmdLine method test_Arg2.

@Test
public void test_Arg2() {
    String[] args = new String[] { "-arg=ARG", "filename" };
    CmdLineArgs cl = new CmdLineArgs(args);
    ArgDecl argA = new ArgDecl(true, "arg");
    cl.add(argA);
    cl.process();
    assertTrue("No -arg= argument found", cl.contains(argA));
    assertEquals("", cl.getValue(argA), "ARG");
    assertEquals("", cl.getArg("arg").getValue(), "ARG");
}
Also used : ArgDecl(org.apache.jena.cmd.ArgDecl) CmdLineArgs(org.apache.jena.cmd.CmdLineArgs) Test(org.junit.Test)

Example 3 with CmdLineArgs

use of org.apache.jena.cmd.CmdLineArgs in project jena by apache.

the class TestCmdLine method test_Flag2.

@Test
public void test_Flag2() {
    String[] args = new String[] { "-a" };
    CmdLineArgs cl = new CmdLineArgs(args);
    ArgDecl argA = new ArgDecl(false, "-a");
    cl.add(argA);
    cl.process();
    assertTrue("No -a argument found", cl.contains(argA));
}
Also used : ArgDecl(org.apache.jena.cmd.ArgDecl) CmdLineArgs(org.apache.jena.cmd.CmdLineArgs) Test(org.junit.Test)

Example 4 with CmdLineArgs

use of org.apache.jena.cmd.CmdLineArgs in project jena by apache.

the class TestCmdLine method test_nArg1.

@Test
public void test_nArg1() {
    String[] args = new String[] { "-arg=V1", "--arg=V2", "-v" };
    CmdLineArgs cl = new CmdLineArgs(args);
    ArgDecl argA = new ArgDecl(true, "-arg");
    cl.add(argA);
    ArgDecl argV = new ArgDecl(false, "-v");
    cl.add(argV);
    cl.process();
    assertTrue("No -arg= argument found", cl.contains(argA));
    Iterator<String> iter = cl.getValues("arg").iterator();
    assertEquals("Argument 1", iter.next(), "V1");
    assertEquals("Argument 2", iter.next(), "V2");
}
Also used : ArgDecl(org.apache.jena.cmd.ArgDecl) CmdLineArgs(org.apache.jena.cmd.CmdLineArgs) Test(org.junit.Test)

Example 5 with CmdLineArgs

use of org.apache.jena.cmd.CmdLineArgs in project jena by apache.

the class qexpr method main2.

public static void main2(String... argv) {
    CmdLineArgs cl = new CmdLineArgs(argv);
    ArgDecl helpDecl = new ArgDecl(ArgDecl.NoValue, "h", "help");
    cl.add(helpDecl);
    ArgDecl verboseDecl = new ArgDecl(ArgDecl.NoValue, "v", "verbose");
    cl.add(verboseDecl);
    ArgDecl versionDecl = new ArgDecl(ArgDecl.NoValue, "ver", "version", "V");
    cl.add(versionDecl);
    ArgDecl quietDecl = new ArgDecl(ArgDecl.NoValue, "q", "quiet");
    cl.add(quietDecl);
    ArgDecl reduceDecl = new ArgDecl(ArgDecl.NoValue, "reduce", "fold", "simplify");
    cl.add(reduceDecl);
    ArgDecl strictDecl = new ArgDecl(ArgDecl.NoValue, "strict");
    cl.add(strictDecl);
    ArgDecl printDecl = new ArgDecl(ArgDecl.HasValue, "print");
    cl.add(printDecl);
    try {
        cl.process();
    } catch (IllegalArgumentException ex) {
        System.err.println(ex.getMessage());
        usage(System.err);
        throw new CmdException();
    }
    if (cl.contains(helpDecl)) {
        usage();
        throw new TerminationException(0);
    }
    if (cl.contains(versionDecl)) {
        System.out.println("ARQ Version: " + ARQ.VERSION + " (Jena: " + Jena.VERSION + ")");
        throw new TerminationException(0);
    }
    // ==== General things
    boolean verbose = cl.contains(verboseDecl);
    boolean quiet = cl.contains(quietDecl);
    if (cl.contains(strictDecl))
        ARQ.setStrictMode();
    boolean actionCopySubstitute = cl.contains(reduceDecl);
    boolean actionPrintPrefix = false;
    boolean actionPrintSPARQL = false;
    boolean actionPrint = cl.contains(printDecl);
    for (String v : cl.getValues(printDecl)) {
        if (v.equalsIgnoreCase("prefix") || v.equalsIgnoreCase("op")) {
            actionPrintPrefix = true;
        } else if (v.equalsIgnoreCase("expr")) {
            actionPrintSPARQL = true;
        } else {
            System.err.println("Unknown print form: " + v);
            throw new TerminationException(0);
        }
    }
    for (int i = 0; i < cl.getNumPositional(); i++) {
        String exprStr = cl.getPositionalArg(i);
        exprStr = cl.indirect(exprStr);
        try {
            PrefixMapping pmap = PrefixMapping.Factory.create();
            pmap.setNsPrefixes(ARQConstants.getGlobalPrefixMap());
            pmap.setNsPrefix("", "http://example/");
            pmap.setNsPrefix("ex", "http://example/ns#");
            Expr expr = ExprUtils.parse(exprStr, pmap);
            if (actionPrint) {
                IndentedWriter iOut = IndentedWriter.stdout;
                if (actionPrintSPARQL) {
                    ExprUtils.fmtSPARQL(iOut, expr);
                    iOut.ensureStartOfLine();
                }
                if (actionPrintPrefix) {
                    WriterSSE.out(iOut, expr, new Prologue(pmap));
                    iOut.ensureStartOfLine();
                }
                iOut.flush();
                continue;
            }
            if (verbose)
                System.out.print(expr.toString() + " => ");
            try {
                if (actionCopySubstitute) {
                    Expr e = ExprLib.foldConstants(expr);
                    System.out.println(e);
                } else {
                    // Default action
                    ARQ.getContext().set(ARQConstants.sysCurrentTime, NodeFactoryExtra.nowAsDateTime());
                    FunctionEnv env = new ExecutionContext(ARQ.getContext(), null, null, null);
                    NodeValue r = expr.eval(null, env);
                    // System.out.println(r.asQuotedString()) ;
                    Node n = r.asNode();
                    String s = NodeFmtLib.displayStr(n);
                    System.out.println(s);
                }
            } catch (ExprEvalException ex) {
                System.out.println("Exception: " + ex.getMessage());
                throw new TerminationException(2);
            }
        } catch (QueryParseException ex) {
            System.err.println("Parse error: " + ex.getMessage());
            throw new TerminationException(2);
        }
    }
}
Also used : NodeValue(org.apache.jena.sparql.expr.NodeValue) CmdException(org.apache.jena.cmd.CmdException) Node(org.apache.jena.graph.Node) ArgDecl(org.apache.jena.cmd.ArgDecl) CmdLineArgs(org.apache.jena.cmd.CmdLineArgs) QueryParseException(org.apache.jena.query.QueryParseException) IndentedWriter(org.apache.jena.atlas.io.IndentedWriter) FunctionEnv(org.apache.jena.sparql.function.FunctionEnv) PrefixMapping(org.apache.jena.shared.PrefixMapping) TerminationException(org.apache.jena.cmd.TerminationException) Prologue(org.apache.jena.sparql.core.Prologue) ExecutionContext(org.apache.jena.sparql.engine.ExecutionContext) Expr(org.apache.jena.sparql.expr.Expr) ExprEvalException(org.apache.jena.sparql.expr.ExprEvalException)

Aggregations

CmdLineArgs (org.apache.jena.cmd.CmdLineArgs)8 ArgDecl (org.apache.jena.cmd.ArgDecl)7 Test (org.junit.Test)7 IndentedWriter (org.apache.jena.atlas.io.IndentedWriter)1 CmdException (org.apache.jena.cmd.CmdException)1 TerminationException (org.apache.jena.cmd.TerminationException)1 Node (org.apache.jena.graph.Node)1 QueryParseException (org.apache.jena.query.QueryParseException)1 PrefixMapping (org.apache.jena.shared.PrefixMapping)1 Prologue (org.apache.jena.sparql.core.Prologue)1 ExecutionContext (org.apache.jena.sparql.engine.ExecutionContext)1 Expr (org.apache.jena.sparql.expr.Expr)1 ExprEvalException (org.apache.jena.sparql.expr.ExprEvalException)1 NodeValue (org.apache.jena.sparql.expr.NodeValue)1 FunctionEnv (org.apache.jena.sparql.function.FunctionEnv)1