public abstract class Topic
extends java.lang.Object
The abstract Topic class. Each topic implementation should extend this class.
Note that you should not store Topic objects except for very short times. Topics may be removed or merged at any time and the topic objects will become invalid. If you are doing something where this can happen, be sure to check if the topic is invalid with the isRemoved method. If it returns true, the topic may have been removed from the topic map or it might have been merged with some other topic. You can get this possible other topic with TopicMap.getTopic which will need the subject identifier of the topic, which means that usually it is better to just store the subject identifiers instead of the topics in the first place.
Many methods may cause topic merges in the topic map. Such methods include addSubjectIdentifier, setBaseName and setSubjectLocator. If a merge occurs, the merge will be handled in such a way that the object whose method was called will stay a valid topic object. In other words, other merging topics will be merged into it instead of the other way around.
Constructor and Description |
---|
Topic() |
Modifier and Type | Method and Description |
---|---|
abstract void |
addSubjectIdentifier(Locator l)
Adds a subject identifier for the topic.
|
abstract void |
addType(Topic t)
Adds a topic type.
|
abstract java.util.Collection<Association> |
getAssociations()
Gets all associations where this topic is a player.
|
abstract java.util.Collection<Association> |
getAssociations(Topic type)
Gets all associations of specified type where this topic is a player.
|
abstract java.util.Collection<Association> |
getAssociations(Topic type,
Topic role)
Gets associations of the specified type where this topic is in the specified role
|
abstract java.util.Collection<Association> |
getAssociationsWithRole()
Gets associations that have this topic as role.
|
abstract java.util.Collection<Association> |
getAssociationsWithType()
Gets associations that have this topic as type.
|
abstract java.lang.String |
getBaseName()
Gets the topic base name or null if no base name has been set.
|
abstract java.util.Hashtable<Topic,java.lang.String> |
getData(Topic type)
Returns a Hashtable mapping data versions to data content.
|
java.lang.String |
getData(Topic type,
java.lang.String lang)
Gets data with the specified type and language version.
|
abstract java.lang.String |
getData(Topic type,
Topic version)
Gets data with the specified type and version.
|
abstract java.util.Collection<Topic> |
getDataTypes()
Gets all used data types.
|
abstract long |
getDependentEditTime() |
java.lang.String |
getDisplayName()
Gets a display name for English language.
|
java.lang.String |
getDisplayName(java.lang.String lang)
Gets a name suitable for display in the specified language.
|
abstract long |
getEditTime() |
Locator |
getFirstSubjectIdentifier()
Returns the subject identifier for the topic that is the first in
lexicographical ordering.
|
abstract java.lang.String |
getID()
Gets the topic ID.
|
java.lang.String |
getName(java.util.Set scope)
Gets a name for the topic.
|
Locator |
getOneSubjectIdentifier()
Returns one of the subject identifiers of this topic or null if none exists.
|
java.lang.String |
getSortName(java.lang.String lang)
Gets a name suitable for sorting in the specified language.
|
abstract java.util.Collection<Locator> |
getSubjectIdentifiers()
Gets all subject identifiers of the topic.
|
abstract Locator |
getSubjectLocator()
Gets the topic subject locator or null if it has not been set.
|
abstract TopicMap |
getTopicMap()
Gets the topic map this topic belongs to.
|
abstract java.util.Collection<Topic> |
getTopicsWithDataType()
Gets topics which have data with this topic as type.
|
abstract java.util.Collection<Topic> |
getTopicsWithDataVersion()
Gets topics which have data with this topic as version.
|
abstract java.util.Collection<Topic> |
getTopicsWithVariantScope()
Gets topics which have variants with this topic in scope.
|
abstract java.util.Collection<Topic> |
getTypes()
Gets all topic types.
|
abstract java.lang.String |
getVariant(java.util.Set<Topic> scope)
Gets a variant with the specified scope.
|
abstract java.util.Set<java.util.Set<Topic>> |
getVariantScopes()
Gets the scopes of all variant names.
|
abstract boolean |
isDeleteAllowed()
Returns true if and only if remove() can be called without it throwing TopicInUseException.
|
abstract boolean |
isOfType(Topic t)
Checks if this topic is of the specified type.
|
abstract boolean |
isRemoved()
Returns true if this topic has been removed from the topic map it belonged to.
|
boolean |
mergesWithTopic(Topic topic)
Checks if this topic would merge with the topic given as parameter.
|
abstract void |
remove()
Removes this topic.
|
abstract void |
removeData(Topic type)
Removes all data with the specified type.
|
abstract void |
removeData(Topic type,
Topic version)
Removes data with specified type and version.
|
abstract void |
removeSubjectIdentifier(Locator l)
Removes a subject identifier.
|
abstract void |
removeType(Topic t)
Removes a topic type.
|
abstract void |
removeVariant(java.util.Set<Topic> scope)
Removes a variant name with the specified scope.
|
abstract void |
setBaseName(java.lang.String name)
Sets the topic base name.
|
abstract void |
setData(Topic type,
java.util.Hashtable<Topic,java.lang.String> versionData)
Sets several data values.
|
abstract void |
setData(Topic type,
Topic version,
java.lang.String value)
Sets data with specified type and version.
|
abstract void |
setDependentEditTime(long time) |
void |
setDisplayName(java.lang.String lang,
java.lang.String name)
Sets a variant with scope containing the display topic and the language topic of the specified
language.
|
abstract void |
setEditTime(long time) |
abstract void |
setSubjectLocator(Locator l)
Sets the topic subject locator overwriting possible previous value.
|
abstract void |
setVariant(java.util.Set<Topic> scope,
java.lang.String name)
Sets the variant with the specified scope.
|
java.lang.String |
toString()
Gets name of this topic suitable for display.
|
public abstract java.lang.String getID() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Locator> getSubjectIdentifiers() throws TopicMapException
TopicMapException
public abstract void addSubjectIdentifier(Locator l) throws TopicMapException
TopicMapException
public abstract void removeSubjectIdentifier(Locator l) throws TopicMapException
TopicMapException
public abstract java.lang.String getBaseName() throws TopicMapException
TopicMapException
public abstract void setBaseName(java.lang.String name) throws TopicMapException
TopicMapException
public abstract java.util.Collection<Topic> getTypes() throws TopicMapException
TopicMapException
public abstract void addType(Topic t) throws TopicMapException
TopicMapException
public abstract void removeType(Topic t) throws TopicMapException
TopicMapException
public abstract boolean isOfType(Topic t) throws TopicMapException
TopicMapException
public abstract java.lang.String getVariant(java.util.Set<Topic> scope) throws TopicMapException
TopicMapException
public abstract void setVariant(java.util.Set<Topic> scope, java.lang.String name) throws TopicMapException
TopicMapException
public abstract java.util.Set<java.util.Set<Topic>> getVariantScopes() throws TopicMapException
TopicMapException
public abstract void removeVariant(java.util.Set<Topic> scope) throws TopicMapException
TopicMapException
public abstract java.lang.String getData(Topic type, Topic version) throws TopicMapException
TopicMapException
public abstract java.util.Hashtable<Topic,java.lang.String> getData(Topic type) throws TopicMapException
TopicMapException
public abstract java.util.Collection<Topic> getDataTypes() throws TopicMapException
TopicMapException
public abstract void setData(Topic type, java.util.Hashtable<Topic,java.lang.String> versionData) throws TopicMapException
TopicMapException
public abstract void setData(Topic type, Topic version, java.lang.String value) throws TopicMapException
TopicMapException
public abstract void removeData(Topic type, Topic version) throws TopicMapException
TopicMapException
public abstract void removeData(Topic type) throws TopicMapException
TopicMapException
public abstract Locator getSubjectLocator() throws TopicMapException
TopicMapException
public abstract void setSubjectLocator(Locator l) throws TopicMapException
TopicMapException
public abstract TopicMap getTopicMap()
public abstract java.util.Collection<Association> getAssociations() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Association> getAssociations(Topic type) throws TopicMapException
TopicMapException
public abstract java.util.Collection<Association> getAssociations(Topic type, Topic role) throws TopicMapException
TopicMapException
public abstract void remove() throws TopicMapException
TopicMapException
public abstract long getEditTime() throws TopicMapException
TopicMapException
public abstract void setEditTime(long time) throws TopicMapException
TopicMapException
public abstract long getDependentEditTime() throws TopicMapException
TopicMapException
public abstract void setDependentEditTime(long time) throws TopicMapException
TopicMapException
public abstract boolean isRemoved() throws TopicMapException
TopicMapException
public abstract boolean isDeleteAllowed() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Topic> getTopicsWithDataType() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Topic> getTopicsWithDataVersion() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Association> getAssociationsWithType() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Association> getAssociationsWithRole() throws TopicMapException
TopicMapException
public abstract java.util.Collection<Topic> getTopicsWithVariantScope() throws TopicMapException
TopicMapException
public java.lang.String getData(Topic type, java.lang.String lang) throws TopicMapException
TopicMapException
public void setDisplayName(java.lang.String lang, java.lang.String name) throws TopicMapException
TopicMapException
public java.lang.String getDisplayName() throws TopicMapException
TopicMapException
getDisplayName(String)
public java.lang.String getDisplayName(java.lang.String lang) throws TopicMapException
TopicMapException
public java.lang.String getSortName(java.lang.String lang) throws TopicMapException
TopicMapException
public java.lang.String getName(java.util.Set scope) throws TopicMapException
TopicMapException
public Locator getOneSubjectIdentifier() throws TopicMapException
TopicMapException
public Locator getFirstSubjectIdentifier() throws TopicMapException
TopicMapException
public boolean mergesWithTopic(Topic topic) throws TopicMapException
TopicMapException
public java.lang.String toString()
toString
in class java.lang.Object
getDisplayName()
Copyright 2004-2015 Wandora Team