protected boolean isResourceListStrict(IRI mainNode, TypeMatcher typeMatcher, int minSize) { if (mainNode == null) { return false; } IRI currentListNode = mainNode; Set<IRI> visitedListNodes = new HashSet<IRI>(); int size = 0; while (true) { IRI firstObject = consumer.getResourceObject(currentListNode, RDF_FIRST, false); if (firstObject == null) { return false; } if (!typeMatcher.isTypeStrict(firstObject)) { // Something in the list that is not of the required type return false; } else { size++; } IRI restObject = consumer.getResourceObject(currentListNode, RDF_REST, false); if (visitedListNodes.contains(restObject)) { // Cycle - Non-terminating return false; } if (restObject == null) { // Not terminated properly return false; } if (restObject.equals(RDF_NIL.getIRI())) { // Terminated properly return size >= minSize; } // Carry on visitedListNodes.add(restObject); currentListNode = restObject; } }
protected boolean isDataRangeLax(IRI mainNode, OWLRDFVocabulary predicate) { IRI object = consumer.getResourceObject(mainNode, predicate, false); return object != null && isDataRangeLax(mainNode); }
protected boolean isDataRangeStrict(IRI mainNode, OWLRDFVocabulary predicate) { IRI object = consumer.getResourceObject(mainNode, predicate, false); return isDataRangeStrict(object); }
protected boolean isDataPropertyStrict(IRI mainNode, OWLRDFVocabulary predicate) { IRI object = consumer.getResourceObject(mainNode, predicate, false); return object != null && isDataPropertyStrict(object); }
protected boolean isClassExpressionLax(IRI mainNode, OWLRDFVocabulary predicate) { IRI object = consumer.getResourceObject(mainNode, predicate, false); return object != null && isClassExpressionLax(object); }
protected boolean isResourcePresent(IRI mainNode, OWLRDFVocabulary predicate) { return consumer.getResourceObject(mainNode, predicate, false) != null; }