Class Topic

java.lang.Object
ontopoly.model.Topic
Direct Known Subclasses:
AbstractTypingTopic, AssociationField, Cardinality, CreateAction, DataType, EditMode, FieldDefinition, FieldsView, InterfaceControl

public class Topic extends Object
INTERNAL: Common superclass for all topics, like instances, association types, topic types, role types, etc. FIXME: Should there be another subtype for isHidden, isReadOnly etc?
  • Constructor Details

    • Topic

      public Topic(TopicIF topicIF, TopicMap tm)
      Constructor.
      Parameters:
      topicIF - the TopicIF object associated with this topic.
      tm - the TopicMap this topic belongs to.
  • Method Details

    • getId

      public String getId()
      Gets the id of this topic.
      Returns:
      the id of this topic.
    • getTopicIF

      public TopicIF getTopicIF()
      Gets the topicIF object of this topic.
      Returns:
      the topicIF object of this topic.
    • getTopicMap

      public TopicMap getTopicMap()
      Gets the topicMap this topic belongs to.
      Returns:
      the topicMap this topic belongs to.
    • getName

      public String getName()
      Gets the unscoped name of the topic.
      Returns:
      the unscoped name of the topic or null if no name has been set.
    • isTopicMap

      public boolean isTopicMap()
      Tests whether this topic is a topic map.
      Returns:
      true if this is a topic map.
    • isTopicType

      public boolean isTopicType()
      Tests whether this topic is a topic type.
      Returns:
      true if this is a topic type.
    • isNameType

      public boolean isNameType()
      Tests whether this topic is a name type.
      Returns:
      true if this is a name type.
    • isOccurrenceType

      public boolean isOccurrenceType()
      Tests whether this topic is an occurrence type.
      Returns:
      true if this is an occurrence type.
    • isAssociationType

      public boolean isAssociationType()
      Tests whether this topic is an association type.
      Returns:
      true if this is an association type.
    • isRoleType

      public boolean isRoleType()
      Tests whether this topic is a role type.
      Returns:
      true if this is a role type.
    • isFieldDefinition

      public boolean isFieldDefinition()
      Tests whether this topic is a field definition or an association field.
      Returns:
      true if this is a role type.
    • isSystemTopic

      public boolean isSystemTopic()
      Tests whether this topic is a system topic type.
      Returns:
      true if this is a system topic type.
    • isPrivateSystemTopic

      public boolean isPrivateSystemTopic()
    • isPublicSystemTopic

      public boolean isPublicSystemTopic()
    • isOntologyTopic

      public boolean isOntologyTopic()
      Tests whether this topic is an instance of an ontology type, i.e. an instance of topic type, name type, occurrence type, association type or role type.
      Returns:
      true if this is an instance of an ontology type.
    • isOntologyType

      public boolean isOntologyType()
      Tests whether this topic is an ontology type, i.e. topic type, name type, occurrence type, association type or role type.
      Returns:
      true if this is an ontology type.
    • getMostSpecificTopicType

      public TopicType getMostSpecificTopicType(TopicType topicType)
      Given the topic type, find the subtype that is the specific type of this topic. The topic type given is usually a super type of the specific type. If null is returned then the topic type is not a super type of this topic.
      Parameters:
      topicType - the super type of this topic
      Returns:
      the most specific type of this type, or null if there is none.
    • getTopicTypes

      public List<TopicType> getTopicTypes()
      Returns the topic types of which this topic is a direct instance.
    • addTopicType

      public void addTopicType(TopicType type)
      Adds the topic type to the list of topic types that topic is a direct instance of.
    • removeTopicType

      public void removeTopicType(TopicType type)
      Removes the topic type from the list of topic types that topic is a direct instance of.
    • getFieldInstances

      public List<FieldInstance> getFieldInstances(TopicType topicType)
    • getFieldInstances

      public List<FieldInstance> getFieldInstances(TopicType topicType, FieldsView fieldsView)
    • remove

      public void remove(LifeCycleListener listener)
      Removes the topic from the topic map.
      Parameters:
      listener - listener that gets call back from the deleting this topic, and any dependencies.p
    • getDependentObjects

      public Collection<Topic> getDependentObjects()
    • findDependentObjects

      protected void findDependentObjects(Collection<Topic> alreadyKnownDependentObjects)
      Find all objects that are dependent on this topic and that should be removed if this topic is removed. At the moment a dependent object is an object that is associated to this topic through a role field that has on:create-only-mode enabled. The dependencies are transitive.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • copyCharacteristics

      public Topic copyCharacteristics()
    • isInstanceOf

      public boolean isInstanceOf(Topic type)
    • isInstanceOf

      public boolean isInstanceOf(LocatorIF psi)