private boolean isTaggable() { if ( ! isList() ) return false ; if ( list.size() == 0 ) return false ; return true ; }
public static void checkList(Item item) { if ( item.isList() ) return; broken(item, "Not a list: " + item.shortString()); }
@Override public void visit(Item item, ItemList list) { result = ( other.isList() && other.getList().equals(list) ) ; }
/** Parse a string to obtain a path */ public static Path parsePath(String str, PrefixMapping pmap) { Item item = parse(str, pmap) ; if ( !item.isList() ) throw new ARQException("Not a list: "+str) ; return BuilderPath.buildPath(item) ; }
public static VarExprList buildNamedExprOrExprList(Item item) { if ( ! item.isList() ) BuilderLib.broken(item, "Not a var expr list") ; ItemList list = item.getList() ; if ( list.isEmpty() ) return new VarExprList() ; if ( list.car().isList() ) // List of lists return buildNamedExprList(list) ; // One item return buildNamedExpr(item) ; }
/** Parse a string to obtain a Triple */ public static Triple parseTriple(String str, PrefixMapping pmap) { Item item = parse(str, pmap) ; if ( !item.isList() ) throw new ARQException("Not a list: "+str) ; return BuilderGraph.buildTriple(item.getList()) ; }
/** Parse a string to obtain a Quad */ public static Quad parseQuad(String s, PrefixMapping pmap) { Item item = parse(s, pmap) ; if ( !item.isList() ) throw new ARQException("Not a list: "+s) ; return BuilderGraph.buildQuad(item.getList()) ; }
public static BasicPattern buildBGP(Item item) { if ( ! item.isTagged(Tags.tagBGP) ) BuilderLib.broken(item, "Not a basic graph pattern") ; if ( ! item.isList() ) BuilderLib.broken(item, "Not a list for a basic graph pattern") ; ItemList list = item.getList() ; return buildBGP(list) ; }
public static void checkList(Item item, String msg) { if ( item.isList() ) return; if ( msg == null && item.isSymbol() ) msg = "Attempt to use a symbol where list expected: " + item.shortString(); if ( msg == null && item.isNode() ) msg = "Attempt to use a node where list expected: " + item.shortString(); if ( msg == null ) msg = "Not a list"; broken(item, msg); }
static final private PropFuncArg readPropFuncArg(Item item) { if ( item.isNode() ) return new PropFuncArg(BuilderNode.buildNode(item)) ; if ( item.isList() ) return new PropFuncArg(BuilderNode.buildNodeList(item)) ; BuilderLib.broken(item, "Expected a property function argument (node or list of nodes") ; return null ; }
public void visit(ItemVisitor visitor) { if ( isList() ) visitor.visit(this, getList()) ; else if ( isNode() ) visitor.visit(this, getNode()) ; else if ( isSymbol() ) visitor.visit(this, getSymbol()) ; else if ( isNil() ) visitor.visitNil() ; else System.err.println("broken item") ; }
private static BasicPattern buildBGP(ItemList list) { // Skips the tag. BasicPattern triples = new BasicPattern() ; for ( int i = 1 ; i < list.size() ; i++ ) { Item item = list.get(i) ; if ( ! item.isList() ) BuilderLib.broken(item, "Not a triple structure") ; Triple t = BuilderGraph.buildTriple(item.getList()) ; triples.add(t) ; } return triples ; }
@Override public Op make(ItemList list) { Node g = null ; QuadPattern qp = new QuadPattern() ; for ( int i = 1 ; i < list.size() ; i++ ) { Item item = list.get(i) ; if ( ! item.isList() ) BuilderLib.broken(item, "Not a quad structure") ; Quad q = BuilderGraph.buildQuad(item.getList()) ; qp.add(q) ; } OpQuadBlock op = new OpQuadBlock(qp) ; return op ; } } ;
@Override public Op make(ItemList list) { BuilderLib.checkLength(3, list, "project") ; Item item1 = list.get(1); List<Var> x = null; if ( item1.isList() ) { x = BuilderNode.buildVars(list.get(1).getList()) ; } else if ( list.get(1).isVar() ) { Var var = BuilderNode.buildVar(item1); x = Collections.singletonList(var); } else BuilderLib.broken("Not a list of variable for project: "+list.get(1)) ; Op sub = build(list, 2) ; return new OpProject(sub, x) ; } } ;
private void printAsList(ItemList list) { boolean first = true ; int indentlevel = out.getUnitIndent() ; if ( list.size() >= 1 && list.get(0).isList() ) indentlevel = 1 ; for ( Item subItem : list ) { if ( ! first ) out.println() ; subItem.visit(this) ; if ( first ) out.incIndent(indentlevel) ; first = false ; } if ( ! first ) out.decIndent(indentlevel) ; if ( ! CloseSameLine ) out.println(); out.print(")") ; }
@Test public void testList_1() { Item item = parse("()") ; assertTrue(item.isList()) ; assertEquals(item.getList().size(), 0 ) ; }
private void testList(String str, Item item1) { Item item = parse(str) ; assertTrue(item.isList()) ; Item i = item.getList().get(0) ; assertEquals(1, item.getList().size()) ; assertEquals(item.getList().get(0), item1) ; }
private void testList(String str, Item item1, Item item2) { Item item = parse(str) ; assertTrue(item.isList()) ; assertEquals(2, item.getList().size()) ; assertEquals(item.getList().get(0), item1) ; assertEquals(item.getList().get(1), item2) ; }
private void testList(String str, Item item1, Item item2, Item item3) { Item item = parse(str) ; assertTrue(item.isList()) ; assertEquals(3, item.getList().size()) ; assertEquals(item.getList().get(0), item1) ; assertEquals(item.getList().get(1), item2) ; assertEquals(item.getList().get(2), item3) ; }