package org.openflexo.foundation.viewpoint;
import org.openflexo.foundation.ontology.OntologyClass;
import org.openflexo.foundation.ontology.OntologyProperty;
import org.openflexo.foundation.viewpoint.ViewPoint.ViewPointBuilder;
public class PropertyPatternRole extends OntologicObjectPatternRole {
private String parentPropertyURI;
private String domainURI;
public PropertyPatternRole(ViewPointBuilder builder) {
super(builder);
}
public String _getParentPropertyURI() {
return parentPropertyURI;
}
public void _setParentPropertyURI(String parentPropertyURI) {
this.parentPropertyURI = parentPropertyURI;
}
public OntologyProperty getParentProperty() {
if (getViewPoint() != null) {
getViewPoint().loadWhenUnloaded();
if (getViewPoint().getViewpointOntology() != null) {
return getViewPoint().getViewpointOntology().getProperty(_getParentPropertyURI());
}
}
return null;
}
public void setParentProperty(OntologyProperty ontologyProperty) {
parentPropertyURI = ontologyProperty != null ? ontologyProperty.getURI() : null;
}
public String _getDomainURI() {
return domainURI;
}
public void _setDomainURI(String domainURI) {
this.domainURI = domainURI;
}
public OntologyClass getDomain() {
getViewPoint().loadWhenUnloaded();
return getViewPoint().getViewpointOntology().getClass(_getDomainURI());
}
public void setDomain(OntologyClass c) {
_setDomainURI(c != null ? c.getURI() : null);
}
@Override
public PatternRoleType getType() {
return PatternRoleType.Property;
}
@Override
public String getPreciseType() {
if (getParentProperty() != null) {
return getParentProperty().getName();
}
return "";
}
@Override
public Class<?> getAccessedClass() {
return OntologyProperty.class;
}
}