public Object visit(OWLDatatype node) { if (!allowedDatatypes.contains(node.getIRI())) { profileViolations.add( new UseOfIllegalDataRange(getCurrentOntology(), getCurrentAxiom(), node)); } return null; }
protected PropertyType getPropertyType(OWLOntology o, OWLDataProperty dataTypeProperty) { Set<OWLDataRange> ranges = dataTypeProperty.getRanges(o); if (ranges.size() == 0) { return null; } if (ranges.size() > 1) { throw new LumifyException( "Unexpected number of ranges on data property " + dataTypeProperty.getIRI().toString()); } for (OWLDataRange range : ranges) { if (range instanceof OWLDatatype) { OWLDatatype datatype = (OWLDatatype) range; return getPropertyType(datatype.getIRI().toString()); } } throw new LumifyException( "Could not find range on data property " + dataTypeProperty.getIRI().toString()); }
@Override public void visit(OWLDatatype node) { write("Datatype"); write(node.getIRI()); }