public class DatabaseTopic extends Topic
| Modifier and Type | Class and Description |
|---|---|
private class |
DatabaseTopic.EqualAssociationWrapper |
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.String |
baseName |
protected java.util.Hashtable<Topic,java.util.Hashtable<Topic,java.lang.String>> |
data |
protected boolean |
dataFetched |
protected boolean |
full |
protected java.lang.String |
id |
private static int |
idcounter |
protected boolean |
removed |
protected boolean |
sisFetched |
protected java.lang.ref.WeakReference<java.util.Hashtable<Topic,java.util.Hashtable<Topic,java.util.Collection<Association>>>> |
storedAssociations |
protected java.util.HashSet<Locator> |
subjectIdentifiers |
protected Locator |
subjectLocator |
protected DatabaseTopicMap |
topicMap |
protected java.util.HashSet<Topic> |
types |
protected boolean |
typesFetched |
protected java.util.Hashtable<java.util.Set<Topic>,Tuples.T2<java.lang.String,java.lang.String>> |
variants |
protected boolean |
variantsFetched |
| Constructor and Description |
|---|
DatabaseTopic(DatabaseTopicMap tm)
Creates a new instance of DatabaseTopic
|
DatabaseTopic(java.util.Map<java.lang.String,java.lang.Object> row,
DatabaseTopicMap tm) |
DatabaseTopic(java.lang.Object baseName,
java.lang.Object subjectLocator,
java.lang.Object id,
DatabaseTopicMap tm) |
DatabaseTopic(java.lang.String id,
DatabaseTopicMap tm) |
| Modifier and Type | Method and Description |
|---|---|
void |
addSubjectIdentifier(Locator l)
Adds a subject identifier for the topic.
|
void |
addType(Topic t)
Adds a topic type.
|
(package private) void |
associationChanged(DatabaseAssociation a,
Topic type,
Topic oldType,
Topic role,
Topic oldRole) |
(package private) void |
create()
Inserts a new topic in the database with the data currently set in this
DatabaseTopic object.
|
protected java.lang.String |
escapeSQL(java.lang.String s) |
(package private) static void |
fetchAllSubjectIdentifiers(java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> res,
java.util.Map<java.lang.String,DatabaseTopic> topics,
DatabaseTopicMap topicMap) |
protected java.util.Hashtable<Topic,java.util.Hashtable<Topic,java.util.Collection<Association>>> |
fetchAssociations() |
protected void |
fetchData() |
protected void |
fetchSubjectIdentifiers() |
protected void |
fetchTypes() |
protected void |
fetchVariants() |
java.util.Collection<Association> |
getAssociations()
Gets all associations where this topic is a player.
|
java.util.Collection<Association> |
getAssociations(Topic type)
Gets all associations of specified type where this topic is a player.
|
java.util.Collection<Association> |
getAssociations(Topic type,
Topic role)
Gets associations of the specified type where this topic is in the specified role
|
java.util.Collection<Association> |
getAssociationsWithRole()
Gets associations that have this topic as role.
|
java.util.Collection<Association> |
getAssociationsWithType()
Gets associations that have this topic as type.
|
java.lang.String |
getBaseName()
Gets the topic base name or null if no base name has been set.
|
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,
Topic version)
Gets data with the specified type and version.
|
java.util.Collection<Topic> |
getDataTypes()
Gets all used data types.
|
long |
getDependentEditTime() |
long |
getEditTime() |
java.lang.String |
getID()
Gets the topic ID.
|
java.util.Collection<Locator> |
getSubjectIdentifiers()
Gets all subject identifiers of the topic.
|
Locator |
getSubjectLocator()
Gets the topic subject locator or null if it has not been set.
|
TopicMap |
getTopicMap()
Gets the topic map this topic belongs to.
|
java.util.Collection<Topic> |
getTopicsWithDataType()
Gets topics which have data with this topic as type.
|
java.util.Collection<Topic> |
getTopicsWithDataVersion()
Gets topics which have data with this topic as version.
|
java.util.Collection<Topic> |
getTopicsWithVariantScope()
Gets topics which have variants with this topic in scope.
|
java.util.Collection<Topic> |
getTypes()
Gets all topic types.
|
java.lang.String |
getVariant(java.util.Set<Topic> scope)
Gets a variant with the specified scope.
|
java.util.Set<java.util.Set<Topic>> |
getVariantScopes()
Gets the scopes of all variant names.
|
(package private) void |
initialize(java.lang.Object baseName,
java.lang.Object subjectLocator) |
(package private) void |
initialize(java.lang.String baseName,
java.lang.String subjectLocator)
Initializes this DatabaseTopic object setting the basename and subject locator
but does not modify the actual database.
|
protected void |
internalSetBaseName(java.lang.String bn)
Sets the base name in this DatabaseTopic object but does not modify the database.
|
boolean |
isDeleteAllowed()
Returns true if and only if remove() can be called without it throwing TopicInUseException.
|
boolean |
isOfType(Topic t)
Checks if this topic is of the specified type.
|
boolean |
isRemoved()
Returns true if this topic has been removed from the topic map it belonged to.
|
(package private) void |
makeFull()
Fetch all information from database that hasn't already been fetched.
|
protected static java.lang.String |
makeID()
Makes an ID string that can be used as an identifier in the database.
|
void |
mergeIn(Topic t) |
void |
remove()
Removes this topic.
|
void |
removeData(Topic type)
Removes all data with the specified type.
|
void |
removeData(Topic type,
Topic version)
Removes data with specified type and version.
|
(package private) void |
removeDuplicateAssociations() |
void |
removeSubjectIdentifier(Locator l)
Removes a subject identifier.
|
void |
removeType(Topic t)
Removes a topic type.
|
void |
removeVariant(java.util.Set<Topic> scope)
Removes a variant name with the specified scope.
|
void |
setBaseName(java.lang.String name)
Sets the topic base name.
|
void |
setData(Topic type,
java.util.Hashtable<Topic,java.lang.String> versionData)
Sets several data values.
|
void |
setData(Topic type,
Topic version,
java.lang.String value)
Sets data with specified type and version.
|
void |
setDependentEditTime(long time) |
void |
setEditTime(long time) |
protected void |
setSubjectIdentifiers(java.util.HashSet<Locator> sis)
Sets subject identifiers in this DatabaseTopic but does not modify
the underlying database.
|
void |
setSubjectLocator(Locator l)
Sets the topic subject locator overwriting possible previous value.
|
void |
setVariant(java.util.Set<Topic> scope,
java.lang.String name)
Sets the variant with the specified scope.
|
getData, getDisplayName, getDisplayName, getFirstSubjectIdentifier, getName, getOneSubjectIdentifier, getSortName, mergesWithTopic, setDisplayName, toStringprotected boolean full
protected boolean sisFetched
protected boolean dataFetched
protected boolean variantsFetched
protected boolean typesFetched
protected DatabaseTopicMap topicMap
protected java.lang.String baseName
protected java.lang.String id
protected Locator subjectLocator
protected java.util.HashSet<Locator> subjectIdentifiers
protected java.util.Hashtable<java.util.Set<Topic>,Tuples.T2<java.lang.String,java.lang.String>> variants
protected java.util.HashSet<Topic> types
protected java.lang.ref.WeakReference<java.util.Hashtable<Topic,java.util.Hashtable<Topic,java.util.Collection<Association>>>> storedAssociations
protected boolean removed
private static int idcounter
public DatabaseTopic(DatabaseTopicMap tm)
public DatabaseTopic(java.lang.String id,
DatabaseTopicMap tm)
public DatabaseTopic(java.util.Map<java.lang.String,java.lang.Object> row,
DatabaseTopicMap tm)
throws TopicMapException
TopicMapExceptionpublic DatabaseTopic(java.lang.Object baseName,
java.lang.Object subjectLocator,
java.lang.Object id,
DatabaseTopicMap tm)
throws TopicMapException
TopicMapExceptionvoid initialize(java.lang.Object baseName,
java.lang.Object subjectLocator)
throws TopicMapException
TopicMapExceptionvoid initialize(java.lang.String baseName,
java.lang.String subjectLocator)
throws TopicMapException
TopicMapExceptionprotected void internalSetBaseName(java.lang.String bn)
throws TopicMapException
TopicMapExceptionprotected static java.lang.String makeID()
void create()
throws TopicMapException
TopicMapExceptionprotected java.lang.String escapeSQL(java.lang.String s)
protected void setSubjectIdentifiers(java.util.HashSet<Locator> sis)
protected void fetchSubjectIdentifiers()
throws TopicMapException
TopicMapExceptionprotected void fetchData()
throws TopicMapException
TopicMapExceptionprotected void fetchVariants()
throws TopicMapException
TopicMapExceptionprotected void fetchTypes()
throws TopicMapException
TopicMapExceptionstatic void fetchAllSubjectIdentifiers(java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> res,
java.util.Map<java.lang.String,DatabaseTopic> topics,
DatabaseTopicMap topicMap)
throws TopicMapException
TopicMapExceptionprotected java.util.Hashtable<Topic,java.util.Hashtable<Topic,java.util.Collection<Association>>> fetchAssociations() throws TopicMapException
TopicMapExceptionvoid makeFull()
throws TopicMapException
TopicMapExceptionpublic java.lang.String getID()
Topicpublic java.util.Collection<Locator> getSubjectIdentifiers() throws TopicMapException
TopicgetSubjectIdentifiers in class TopicTopicMapExceptionpublic void addSubjectIdentifier(Locator l) throws TopicMapException
TopicaddSubjectIdentifier in class TopicTopicMapExceptionpublic void mergeIn(Topic t) throws TopicMapException
TopicMapExceptionpublic void removeSubjectIdentifier(Locator l) throws TopicMapException
TopicremoveSubjectIdentifier in class TopicTopicMapExceptionpublic java.lang.String getBaseName()
TopicgetBaseName in class Topicpublic void setBaseName(java.lang.String name)
throws TopicMapException
TopicsetBaseName in class TopicTopicMapExceptionpublic java.util.Collection<Topic> getTypes() throws TopicMapException
TopicgetTypes in class TopicTopicMapExceptionpublic void addType(Topic t) throws TopicMapException
TopicaddType in class TopicTopicMapExceptionpublic void removeType(Topic t) throws TopicMapException
TopicremoveType in class TopicTopicMapExceptionpublic boolean isOfType(Topic t) throws TopicMapException
TopicisOfType in class TopicTopicMapExceptionpublic java.lang.String getVariant(java.util.Set<Topic> scope) throws TopicMapException
TopicgetVariant in class TopicTopicMapExceptionpublic void setVariant(java.util.Set<Topic> scope, java.lang.String name) throws TopicMapException
TopicsetVariant in class TopicTopicMapExceptionpublic java.util.Set<java.util.Set<Topic>> getVariantScopes() throws TopicMapException
TopicgetVariantScopes in class TopicTopicMapExceptionpublic void removeVariant(java.util.Set<Topic> scope) throws TopicMapException
TopicremoveVariant in class TopicTopicMapExceptionpublic java.lang.String getData(Topic type, Topic version) throws TopicMapException
TopicgetData in class TopicTopicMapExceptionpublic java.util.Hashtable<Topic,java.lang.String> getData(Topic type) throws TopicMapException
TopicgetData in class TopicTopicMapExceptionpublic java.util.Collection<Topic> getDataTypes() throws TopicMapException
TopicgetDataTypes in class TopicTopicMapExceptionpublic void setData(Topic type, java.util.Hashtable<Topic,java.lang.String> versionData) throws TopicMapException
TopicsetData in class TopicTopicMapExceptionpublic void setData(Topic type, Topic version, java.lang.String value) throws TopicMapException
TopicsetData in class TopicTopicMapExceptionpublic void removeData(Topic type, Topic version) throws TopicMapException
TopicremoveData in class TopicTopicMapExceptionpublic void removeData(Topic type) throws TopicMapException
TopicremoveData in class TopicTopicMapExceptionpublic Locator getSubjectLocator()
TopicgetSubjectLocator in class Topicpublic void setSubjectLocator(Locator l) throws TopicMapException
TopicsetSubjectLocator in class TopicTopicMapExceptionpublic TopicMap getTopicMap()
TopicgetTopicMap in class Topicpublic java.util.Collection<Association> getAssociations() throws TopicMapException
TopicgetAssociations in class TopicTopicMapExceptionpublic java.util.Collection<Association> getAssociations(Topic type) throws TopicMapException
TopicgetAssociations in class TopicTopicMapExceptionpublic java.util.Collection<Association> getAssociations(Topic type, Topic role) throws TopicMapException
TopicgetAssociations in class TopicTopicMapExceptionpublic void remove()
throws TopicMapException
Topicremove in class TopicTopicMapExceptionpublic long getEditTime()
getEditTime in class Topicpublic void setEditTime(long time)
setEditTime in class Topicpublic long getDependentEditTime()
getDependentEditTime in class Topicpublic void setDependentEditTime(long time)
setDependentEditTime in class Topicpublic boolean isRemoved()
Topicpublic boolean isDeleteAllowed()
throws TopicMapException
TopicisDeleteAllowed in class TopicTopicMapExceptionpublic java.util.Collection<Topic> getTopicsWithDataType() throws TopicMapException
TopicgetTopicsWithDataType in class TopicTopicMapExceptionpublic java.util.Collection<Association> getAssociationsWithType() throws TopicMapException
TopicgetAssociationsWithType in class TopicTopicMapExceptionpublic java.util.Collection<Association> getAssociationsWithRole() throws TopicMapException
TopicgetAssociationsWithRole in class TopicTopicMapExceptionpublic java.util.Collection<Topic> getTopicsWithDataVersion() throws TopicMapException
TopicgetTopicsWithDataVersion in class TopicTopicMapExceptionpublic java.util.Collection<Topic> getTopicsWithVariantScope() throws TopicMapException
TopicgetTopicsWithVariantScope in class TopicTopicMapExceptionvoid associationChanged(DatabaseAssociation a, Topic type, Topic oldType, Topic role, Topic oldRole)
void removeDuplicateAssociations()
throws TopicMapException
TopicMapExceptionCopyright 2004-2015 Wandora Team