@Override public PropertyFunction create(String uri) { try { return (PropertyFunction)extClass.newInstance(); } catch (Exception e) { throw new QueryBuildException("Can't instantiate PropertyFunction for " + uri, e); } }
@Override public Procedure create(String uri) { try { return (Procedure)extClass.newInstance() ; } catch (Exception e) { throw new QueryBuildException("Can't instantiate procedure for "+uri, e) ; } } }
@Override public Function create(String uri) { try { return (Function)extClass.newInstance(); } catch (Exception e) { throw new QueryBuildException("Can't instantiate function for " + uri, e); } }
private static void checkDataBlock(List<Var> variables, List<Binding> values) { // Check. int N = variables.size() ; for ( Binding valueRow : values ) { Iterator<Var> iter= valueRow.vars() ; for ( ; iter.hasNext() ; ) { Var v = iter.next() ; if ( ! variables.contains(v) ) throw new QueryBuildException("Variable "+v+" not found in "+variables) ; } } }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 4) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 5) throw new QueryBuildException("Too many arguments in list : " + list); } }
@Override public void checkBuild(String uri, ExprList args) { if(args.size() == 0 || args.size() > 2) { throw new QueryBuildException("Function '" + this.getClass().getName() + "' takes one or two arguments") ; } } }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 2) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 3) throw new QueryBuildException("Too many arguments in list : " + list); } }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 3) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 5) throw new QueryBuildException("Too many arguments in list : " + list); } } /** Deconstruct the node or list object argument and make a NearbyMatch */
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 4) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 5) throw new QueryBuildException("Too many arguments in list : " + list); } }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 2) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 3) throw new QueryBuildException("Too many arguments in list : " + list); } }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (!argSubject.isNode()) throw new QueryBuildException("Subject is not a single node: " + argSubject); if (argObject.isList()) { List<Node> list = argObject.getArgList(); if (list.size() < 3) throw new QueryBuildException("Not enough arguments in list"); if (list.size() > 5) throw new QueryBuildException("Too many arguments in list : " + list); } } /** Deconstruct the node or list object argument and make a NearbyMatch */
@Override public void checkBuild(String uri, ExprList args) { if ( args.size() != 3 ) throw new QueryBuildException("Function '"+Lib.className(this)+"' takes three arguments") ; }
@Override public void checkBuild(String uri, ExprList args) { if (args.size() != 5) { throw new QueryBuildException("Function '" + Lib.className(this) + "' takes five arguments"); } }
@Override public void checkBuild(String uri, ExprList args) { if ( args.size() != 2 ) throw new QueryBuildException("Function '"+Lib.className(this)+"' takes two arguments") ; }
@Override public void checkBuild(String uri, ExprList args) { if ( args.size() != 1 ) throw new QueryBuildException("Function '"+Lib.className(this)+"' takes one argument") ; }
@Override public void checkBuild(String uri, ExprList args) { if ( args.size() != 0 ) throw new QueryBuildException("Function '"+Lib.className(this)+"' takes no arguments") ; }
private static void _addVarExpr(VarExprList varExprList, Var v, Expr expr) { if ( varExprList.contains(v) ) // SELECT ?x (?a+?b AS ?x) // SELECT (2*?a AS ?x) (?a+?b AS ?x) throw new QueryBuildException("Duplicate variable in result projection '"+v+"'") ; varExprList.add(v, expr) ; }
@Override public void checkBuild(String uri, ExprList args) { if(args.size() < 2) throw new QueryBuildException("Function '"+ Lib.className(this)+"' takes at least two arguments") ; }
@Override public void checkBuild(String uri, ExprList args) { if ( args.size() != 1 ) throw new QueryBuildException("Function '"+Lib.className(this)+"' takes one argument") ; }
@Override public void build(PropFuncArg argSubject, Node predicate, PropFuncArg argObject, ExecutionContext execCxt) { super.build(argSubject, predicate, argObject, execCxt); if (argObject.getArgListSize() != 2) throw new QueryBuildException("Object list must contain exactly two arguments, the string to split and a regular expression") ; }