
edu.stanford.protege.webprotege.frame.PropertyValueDescriptor Maven / Gradle / Ivy
The newest version!
package edu.stanford.protege.webprotege.frame;
import edu.stanford.protege.webprotege.entity.*;
import org.semanticweb.owlapi.model.OWLAxiom;
import java.util.Optional;
import java.util.Set;
/**
* @author Matthew Horridge, Stanford University, Bio-Medical Informatics Research Group, Date: 27/02/2014
*
*/
public class PropertyValueDescriptor {
private final OWLPropertyData property;
private final OWLPrimitiveData value;
private State state = State.ASSERTED;
private final boolean mostSpecific;
private final Set additionalAxioms;
public PropertyValueDescriptor(OWLPropertyData property, OWLPrimitiveData value, State state, boolean mostSpecific, Set additionalAxioms) {
this.property = property;
this.value = value;
this.state = state;
this.mostSpecific = mostSpecific;
this.additionalAxioms = additionalAxioms;
}
@Override
public int hashCode() {
return "PropertyValueDescriptor".hashCode() + property.hashCode() + value.hashCode() + state.hashCode() + (mostSpecific ? 1 : 0);
}
@Override
public boolean equals(Object o) {
if(o == this) {
return true;
}
if(!(o instanceof PropertyValueDescriptor)) {
return false;
}
PropertyValueDescriptor other = (PropertyValueDescriptor) o;
return this.property.equals(other.property) &&
this.value.equals(other.value) &&
this.state == other.state &&
this.mostSpecific == other.mostSpecific;
}
public State getState() {
return state;
}
public OWLPropertyData getProperty() {
return property;
}
public OWLPrimitiveData getValue() {
return value;
}
public boolean isMostSpecific() { return mostSpecific; }
public Set getAdditionalAxioms() {
return additionalAxioms;
}
public Optional toPropertyValue() {
return property.accept(new OWLPrimitiveDataVisitorAdapter, RuntimeException>() {
@Override
protected Optional getDefaultReturnValue() {
return Optional.empty();
}
@Override
public Optional visit(final OWLObjectPropertyData propertyData) throws RuntimeException {
return value.accept(new OWLPrimitiveDataVisitorAdapter, RuntimeException>() {
@Override
public Optional visit(OWLClassData data) throws RuntimeException {
return Optional.of(PropertyClassValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLNamedIndividualData data) throws RuntimeException {
return Optional.of(PropertyIndividualValue.get(propertyData, data, state));
}
});
}
@Override
public Optional visit(final OWLDataPropertyData propertyData) throws RuntimeException {
return value.accept(new OWLPrimitiveDataVisitorAdapter, RuntimeException>() {
@Override
public Optional visit(OWLDatatypeData data) throws RuntimeException {
return Optional.of(PropertyDatatypeValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLLiteralData data) throws RuntimeException {
return Optional.of(PropertyLiteralValue.get(propertyData, data, state));
}
});
}
@Override
public Optional visit(final OWLAnnotationPropertyData propertyData) throws RuntimeException {
return value.accept(new OWLPrimitiveDataVisitorAdapter, RuntimeException>() {
@Override
public Optional visit(OWLLiteralData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(IRIData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLClassData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLObjectPropertyData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLDataPropertyData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLAnnotationPropertyData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLNamedIndividualData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
@Override
public Optional visit(OWLDatatypeData data) throws RuntimeException {
return Optional.of(PropertyAnnotationValue.get(propertyData, data, state));
}
});
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy