public static GraphBlock graphFilter(UID context, Block block, Predicate... filters) { return graphFilter(convert(UID.class, context), block, filters); }
@Override public BooleanExpression exists() { return BooleanOperation.create(Ops.EXISTS, Blocks.group(this)); }
public static GraphBlock graph(Expression<UID> context, Collection<Predicate> predicates) { List<Block> blocks = new ArrayList<Block>(); BooleanBuilder filters = new BooleanBuilder(); handle(predicates, blocks, filters); if (filters.getValue() == null) { return new GraphBlock(convert(UID.class, context), blocks); } else { return new GraphBlock(convert(UID.class, context), blocks, filters.getValue()); } }
public PatternBlock is(Object predicate, Object subject) { return Blocks.pattern(subject, predicate, this); }
public OptionalBlock asOptional() { return Blocks.optional(this); }
where = Blocks.graph(uids.get(0), (Block) where); } else if (uids.size() > 1) { QUID g = new QUID("__g"); // TODO : use constant b.or(g.eq(uid)); where = Blocks.graphFilter(g, (Block) where, b.getValue());
@Test public void Equals() { Block block1 = Blocks.graphFilter(new QNODE<UID>(UID.class, "c"), Blocks.SPO); Block block2 = Blocks.graphFilter(new QNODE<UID>(UID.class, "c"), Blocks.SPOC); Block block3 = Blocks.graphFilter(new QNODE<UID>(UID.class, "d"), Blocks.SPO); assertFalse(block1.equals(block2)); assertFalse(block1.equals(block3)); assertFalse(block2.equals(block3)); } }
@Test public void Equals() { Block block1 = Blocks.optional(Blocks.SPOC); Block block2 = Blocks.optionalFilter(Blocks.SPOC, QNODE.o.lit().lt("X")); assertFalse(block1.equals(block2)); } }
@Test public void To_String() { Block block = Blocks.graph(new QNODE<UID>(UID.class, "c"), Blocks.SPO); assertEquals("GRAPH {c}{ {s} {p} {o} . }", block.toString()); }
@Test public void To_String() { Block block = Blocks.union(Blocks.S_FIRST, Blocks.S_REST); assertEquals( "{s} http://www.w3.org/1999/02/22-rdf-syntax-ns#first {first} . " + "UNION " + "{s} http://www.w3.org/1999/02/22-rdf-syntax-ns#rest {rest} .", block.toString()); }
@Test public void PatternBlock_with_Filter() { GroupBlock block = (GroupBlock) Blocks.filter(Blocks.SPO, QNODE.p.eq(RDF.type)); Iterator<Bindings> iterator = visitor.visit(block, context).getFirst().iterator(); Map<String, NODE> row = iterator.next().toMap(); assertFalse(iterator.hasNext()); assertEquals(3, row.size()); assertEquals(id, row.get("s")); assertEquals(RDF.type, row.get("p")); }
public static GroupBlock group(Collection<Predicate> predicates) { List<Block> blocks = new ArrayList<Block>(); BooleanBuilder filters = new BooleanBuilder(); handle(predicates, blocks, filters); if (filters.getValue() == null) { return new GroupBlock(blocks); } else { return new GroupBlock(blocks, filters.getValue()); } }
@Test public void To_String_with_Filter() { Block block = Blocks.optionalFilter(Blocks.SPOC, QNODE.o.lit().lt("X")); assertEquals("OPTIONAL { {s} {p} {o} {c} . FILTER({o} < \"X\") }", block.toString()); }
public PatternBlock a(Object type, Object context) { return Blocks.pattern(this, RDF.type, type, context); }