@Override public Object visit(OWLDatatypeRestriction object) { if (!(object.getDatatype().isOWLDatatype())) throw new IllegalArgumentException("Datatype restrictions are supported only on OWL datatypes."); String datatypeURI=object.getDatatype().getIRI().toString(); if (InternalDatatype.RDFS_LITERAL.getIRI().equals(datatypeURI)) { if (object.facetRestrictions().count()>0) throw new IllegalArgumentException("rdfs:Literal does not support any facets."); return InternalDatatype.RDFS_LITERAL; } List<OWLFacetRestriction> list=asList(object.facetRestrictions()); String[] facetURIs=new String[list.size()]; Constant[] facetValues=new Constant[list.size()]; int index=0; for (OWLFacetRestriction facet : list) { facetURIs[index]=facet.getFacet().getIRI().toURI().toString(); facetValues[index]=(Constant)facet.getFacetValue().accept(this); index++; } DatatypeRestriction datatype=DatatypeRestriction.create(datatypeURI,facetURIs,facetValues); DatatypeRegistry.validateDatatypeRestriction(datatype); return datatype; } @Override
public Object visit(OWLDatatypeRestriction object) { if (!(object.getDatatype().isOWLDatatype())) throw new IllegalArgumentException("Datatype restrictions are supported only on OWL datatypes."); String datatypeURI=object.getDatatype().getIRI().toString(); if (InternalDatatype.RDFS_LITERAL.getIRI().equals(datatypeURI)) { if (!object.getFacetRestrictions().isEmpty()) throw new IllegalArgumentException("rdfs:Literal does not support any facets."); return InternalDatatype.RDFS_LITERAL; } String[] facetURIs=new String[object.getFacetRestrictions().size()]; Constant[] facetValues=new Constant[object.getFacetRestrictions().size()]; int index=0; for (OWLFacetRestriction facet : object.getFacetRestrictions()) { facetURIs[index]=facet.getFacet().getIRI().toURI().toString(); facetValues[index]=(Constant)facet.getFacetValue().accept(this); index++; } DatatypeRestriction datatype=DatatypeRestriction.create(datatypeURI,facetURIs,facetValues); DatatypeRegistry.validateDatatypeRestriction(datatype); return datatype; } public Object visit(OWLFacetRestriction object) {