package org.openflexo.foundation.ontology.xsd; import java.util.HashSet; import java.util.Set; import java.util.logging.Level; import org.openflexo.foundation.ontology.AbstractOntologyObject; import org.openflexo.foundation.ontology.EditionPatternInstance; import org.openflexo.foundation.ontology.OntologyDataProperty; import org.openflexo.foundation.ontology.OntologyLibrary; import org.openflexo.foundation.ontology.OntologyObject; import org.openflexo.foundation.ontology.OntologyObjectConverter; import org.openflexo.foundation.ontology.OntologyObjectProperty; import org.openflexo.foundation.ontology.OntologyProperty; import org.openflexo.foundation.viewpoint.PatternRole; import org.openflexo.inspector.InspectableObject; import org.openflexo.localization.Language; import org.openflexo.xmlcode.StringConvertable; public abstract class AbstractXSOntObject extends AbstractOntologyObject implements OntologyObject, XSOntologyURIDefinitions, InspectableObject, StringConvertable<OntologyObject> { private static final java.util.logging.Logger logger = org.openflexo.logging.FlexoLogger.getLogger(AbstractXSOntObject.class .getPackage().getName()); private String uri; private String name; private XSOntology ontology; private final Set<XSOntProperty> propertiesTakingMySelfAsRange; private final Set<XSOntProperty> propertiesTakingMySelfAsDomain; protected AbstractXSOntObject(XSOntology ontology, String name, String uri) { super(); this.name = name; this.uri = uri; this.ontology = ontology; propertiesTakingMySelfAsRange = new HashSet<XSOntProperty>(); propertiesTakingMySelfAsDomain = new HashSet<XSOntProperty>(); } protected AbstractXSOntObject() { this(null, null, null); } @Override public String getURI() { return uri; } @Override public String getName() { return name; } @Override public void setName(String name) { this.name = name; if (logger.isLoggable(Level.WARNING)) { logger.warning("The ontology object name changed, renaming of the object URI not implemented yet"); } } @Override public boolean getIsReadOnly() { return getFlexoOntology().getIsReadOnly(); } @Override public XSOntology getFlexoOntology() { return ontology; } @Override public OntologyObjectConverter getConverter() { if (getOntologyLibrary() != null) { return getOntologyLibrary().getOntologyObjectConverter(); } return null; } @Override public Object getPropertyValue(OntologyProperty property) { // Stub return null; } @Override public void setPropertyValue(OntologyProperty property, Object newValue) { // Stub } @Override public String getHTMLDescription() { return getDisplayableDescription(); } @Override public boolean isSuperConceptOf(OntologyObject concept) { // TODO Ask Sylvain return false; } @Override public boolean isSubConceptOf(OntologyObject concept) { // TODO Ask Sylvain return false; } @Override public boolean equalsToConcept(OntologyObject o) { // TODO Ask Sylvain return false; } @Override public boolean containsOntologyObject(OntologyObject o, boolean inherited) { return o == this || inherited && isSuperConceptOf(o); } @Override public XSOntology getOntology() { return ontology; } @Override public OntologyLibrary getOntologyLibrary() { if (isOntology() == false) { return getOntology().getOntologyLibrary(); } if (logger.isLoggable(Level.WARNING)) { logger.warning("Ontology " + getName() + " is missing a library"); } return null; } @Override public Object getAnnotationValue(OntologyDataProperty property, Language language) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Annotations not yet supported by XSOntologies"); } return null; } @Override public void setAnnotationValue(Object value, OntologyDataProperty property, Language language) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Annotations not yet supported by XSOntologies"); } } @Override public Object getAnnotationObjectValue(OntologyObjectProperty property) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Annotations not yet supported by XSOntologies"); } return null; } @Override public void setAnnotationObjectValue(Object value, OntologyObjectProperty property, Language language) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Annotations not yet supported by XSOntologies"); } } public void clearPropertiesTakingMyselfAsRangeOrDomain() { propertiesTakingMySelfAsRange.clear(); propertiesTakingMySelfAsDomain.clear(); } public void addPropertyTakingMyselfAsRange(XSOntProperty property) { propertiesTakingMySelfAsRange.add(property); } public void addPropertyTakingMyselfAsDomain(XSOntProperty property) { propertiesTakingMySelfAsDomain.add(property); } @Override public Set<? extends XSOntProperty> getPropertiesTakingMySelfAsRange() { return propertiesTakingMySelfAsRange; } @Override public Set<? extends XSOntProperty> getPropertiesTakingMySelfAsDomain() { // TODO Auto-generated method stub return propertiesTakingMySelfAsDomain; } @Override public void registerEditionPatternReference(EditionPatternInstance editionPatternInstance, PatternRole patternRole) { // TODO Auto-generated method stub } @Override public String getFullyQualifiedName() { // TODO Auto-generated method stub return null; } @Override public Object addPropertyStatement(OntologyObjectProperty property, OntologyObject object) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Statements aren't supported by XSOntology objects"); } return null; } @Override public Object addPropertyStatement(OntologyProperty property, Object value) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Statements aren't supported by XSOntology objects"); } return null; } @Override public Object addPropertyStatement(OntologyProperty property, String value, Language language) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Statements aren't supported by XSOntology objects"); } return null; } @Override public Object addDataPropertyStatement(OntologyDataProperty property, Object value) { if (logger.isLoggable(Level.WARNING)) { logger.warning("Statements aren't supported by XSOntology objects"); } return null; } @Override public boolean isOntology() { return false; } @Override public boolean isOntologyClass() { return false; } @Override public boolean isOntologyIndividual() { return false; } @Override public boolean isOntologyObjectProperty() { return false; } @Override public boolean isOntologyDataProperty() { return false; } }