public boolean isInverse(int index) { return predicatePath.get(index).inv(); }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(mappedProperty.toString()); sb.append(" {"); boolean first = true; for (MappedPredicate predicate : predicatePath) { sb.append(' '); if (predicate.inv()) { sb.append('^'); } else if (!first) { sb.append('.'); } // sb.append(predicate.getReadableURI()); sb.append(predicate.toString()); first = false; } sb.append(" }"); return sb.toString(); }
public boolean isSimpleProperty() { return predicatePath.size() == 1 && !get(0).inv() && !get(0).includeInferred(); }
private Set<NODE> findPathValues(ID resource, MappedPath path, int index, PropertiesMap properties, UID context) { MappedPredicate predicate = path.get(index); if (predicate.getContext() != null) { context = predicate.getContext(); } Set<NODE> values; if (!predicate.inv() && properties.getDirect() != null) { values = findValues(predicate.getUID(), properties.getDirect(), context, predicate.inv()); } else if (predicate.inv() && properties.getInverse() != null) { values = findValues(predicate.getUID(), properties.getInverse(), null, predicate.inv()); } else { values = findValues(resource, predicate.getUID(), predicate.inv(), predicate.includeInferred(), context); } if (path.size() > index + 1) { Set<NODE> nestedValues = new LinkedHashSet<NODE>(); for (NODE value : values) { if (value.isResource()) { nestedValues.addAll(findPathValues((ID) value, path, index + 1, new PropertiesMap(null, null), context)); } } return nestedValues; } return values; }
@SuppressWarnings("unchecked") void addMappedPath(MappedPath path) { if (path.getPredicatePath().size() > 0) { if (!path.get(0).inv()) { mappedPredicates.add(path.get(0).getUID()); } else {
pathNode = var(varNames.next()); if (!pred.inv()) { filters.add(Blocks.pattern(parent, pred.getUID(), pathNode, c)); } else {
@Test public void Inverse() { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.addClass(TEST.NS, Company.class) .addId("id") .addProperty("departments", new UID(TEST.NS, "company"), true) .addProperties(); Configuration configuration = builder.build(); // company MappedClass company = configuration.getMappedClass(Company.class); MappedPath company_departments = company.getMappedPath("departments"); assertEquals(TEST.NS, company_departments.getPredicatePath().get(0).getUID().ns()); assertEquals("company", company_departments.getPredicatePath().get(0).getUID().ln()); assertTrue(company_departments.getPredicatePath().get(0).inv()); }