public OptionalBlock asOptional() { return Blocks.optional(this); }
@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)); } }
public void endOptional() { if (optBlocks.isEmpty()) { filters.addAll(optFilters); } else { filters.add(Blocks.optional( new ArrayList<Block>(optBlocks), optFilters.toArray(new Predicate[optFilters.size()]))); } optBlocks = new LinkedHashSet<Block>(); optFilters = new LinkedHashSet<Predicate>(); inOptional = false; }
private Collection<NODE> convertList(ID subject, UID context) { List<NODE> list = new ArrayList<NODE>(); while (subject != null && !subject.equals(RDF.nil)) { if (logger.isDebugEnabled()) { logger.debug("query for list elements of " + subject); } Map<String, NODE> nodes = listCache.get(subject); if (nodes == null) { nodes = new RDFQueryImpl(connection) .where(Blocks.S_REST, Blocks.optional(Blocks.S_FIRST)) .set(QNODE.s, subject) .selectSingle(QNODE.first, QNODE.rest); } if (nodes == null) { if (list.size() == 0) { list.add(subject); } break; } NODE value = nodes.get(QNODE.first.getName()); if (value != null) { list.add(value); } else { list.add(null); } subject = (ID) nodes.get(QNODE.rest.getName()); } return list; }
@Test public void To_String() { Block block = Blocks.optional(Blocks.SPOC); assertEquals("OPTIONAL { {s} {p} {o} {c} . }", block.toString()); }
@Test public void Exists() { assertEquals("exists OPTIONAL { {s} {p} {o} {c} . }", Blocks.optional(Blocks.SPOC).exists().toString()); }
@Test public void Optional_via_has() { assertEquals( Blocks.optional(Blocks.pattern(subject, predicate, object)), subject.has(predicate, object).asOptional()); }
@Test public void Optional() { query().where( Blocks.pattern(subject, RDF.type, RDFS.Class), Blocks.optional(Blocks.pattern(subject, predicate, object))) .select(subject, predicate, object); }