public class DatabaseTopicMap extends AbstractDatabaseTopicMap
AbstractDatabaseTopicMap.QueryQueue
Modifier and Type | Field and Description |
---|---|
protected boolean |
changed |
protected boolean |
completeIndexes
A flag indicating that the
topicIndex is a full index of
everything existing in this topic map. |
protected java.util.ArrayList<TopicMapListener> |
disabledListeners |
protected java.lang.Object |
indexLock |
protected WeakTopicIndex |
topicIndex
The WeakTopicIndex used to index topics.
|
protected java.util.ArrayList<TopicMapListener> |
topicMapListeners |
connection, databaseFlavour, isDBReadOnly, unconnected
consistencyCheck, consistencyCheckWhenXTMImport, EDITTIME_SI, isReadOnly, logger, parentTopicMap
Constructor and Description |
---|
DatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword)
Creates a new instance of DatabaseTopicMap
|
DatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword,
java.lang.Object connectionParams) |
DatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword,
java.lang.String initScript) |
DatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword,
java.lang.String initScript,
java.lang.Object connectionParams) |
Modifier and Type | Method and Description |
---|---|
private Association |
_copyAssociationIn(Association a) |
private Topic |
_copyTopicIn(Topic t,
boolean deep,
boolean stub,
java.util.HashMap<Topic,Locator> copied) |
private Topic |
_copyTopicIn(Topic t,
boolean deep,
java.util.HashMap<Topic,Locator> copied) |
void |
addTopicMapListener(TopicMapListener listener)
Adds a topic map listener.
|
void |
associationChanged(Association a) |
void |
associationPlayerChanged(Association a,
Topic role,
Topic newPlayer,
Topic oldPlayer) |
(package private) void |
associationRemoved(Association a) |
void |
associationTypeChanged(Association a,
Topic newType,
Topic oldType) |
DatabaseAssociation |
buildAssociation(java.util.Map<java.lang.String,java.lang.Object> row)
Builds a database association from a database query result row.
|
DatabaseAssociation |
buildAssociation(java.lang.Object associationId,
java.lang.Object typeId,
java.lang.Object typeName,
java.lang.Object typeSL) |
DatabaseAssociation |
buildAssociation(java.lang.String associationId,
DatabaseTopic type) |
DatabaseAssociation |
buildAssociation(java.lang.String associationId,
java.lang.String typeId,
java.lang.String typeName,
java.lang.String typeSL) |
DatabaseTopic |
buildTopic(java.util.Map<java.lang.String,java.lang.Object> row)
Builds a database topic from a database query result row.
|
DatabaseTopic |
buildTopic(java.lang.Object id,
java.lang.Object baseName,
java.lang.Object subjectLocator)
Builds a database topic when given the topic id, basename and subject locator.
|
DatabaseTopic |
buildTopic(java.lang.String id,
java.lang.String baseName,
java.lang.String subjectLocator)
Builds a database topic when given the topic id, basename and subject locator.
|
void |
checkAssociationConsistency(TopicMapLogger logger)
Checks association consistency and fixes any inconsistencies.
|
void |
checkSIConsistency() |
void |
checkSIConsistency(TopicMapLogger logger) |
void |
clearTopicMap()
Deletes everything in the topic map by clearing the database tables.
|
void |
clearTopicMapIndexes()
Clears the topic index (cache) containing recently accessed database topics.
|
void |
close()
Closes the topic map.
|
void |
commit() |
Association |
copyAssociationIn(Association a)
Copies an association of a different topic map in this topic map.
|
void |
copyTopicAssociationsIn(Topic t)
Copies all associations of a topic of a different topic map in this topic
map using copyAssociationIn.
|
Topic |
copyTopicIn(Topic t,
boolean deep)
Copies a topic of different topic map in this topic map.
|
Association |
createAssociation(Topic type)
Creates a new association of the given type without any members.
|
Topic |
createTopic()
Creates a new topic without base name, subject identifier, data or any associations.
|
Topic |
createTopic(java.lang.String id)
Creates a new topic without base name, subject identifier, data or any associations.
|
void |
disableAllListeners() |
void |
enableAllListeners() |
java.util.Iterator<Association> |
getAssociations()
Note that you must iterate through all rows because statement and result set
will only be closed after last row has been fetched.
|
java.util.Collection<Association> |
getAssociationsOfType(Topic type)
Returns all associations in the topic map that are of the given type.
|
int |
getNumAssociations()
Returns the number of associations in topic map.
|
int |
getNumTopics()
Returns the number of topics in topic map.
|
TopicMapStatData |
getStatistics(TopicMapStatOptions options) |
Topic |
getTopic(java.util.Collection<Locator> SIs) |
Topic |
getTopic(Locator si)
Gets a topic with subject identifier.
|
Topic |
getTopicBySubjectLocator(Locator sl)
Gets a topic with subject locator.
|
java.util.List<TopicMapListener> |
getTopicMapListeners()
Gets all topic map listeners.
|
java.util.Iterator<Topic> |
getTopics()
Gets all topics in the topic map.
|
Topic[] |
getTopics(java.lang.String[] sis)
Gets the topics whose subject identifiers are given in the array.
|
java.util.Collection<Topic> |
getTopicsOfType(Topic type)
Gets all topics in the topic map that are of the given type.
|
Topic |
getTopicWithBaseName(java.lang.String name)
Gets a topic with topic base name.
|
void |
importLTM(java.io.File in) |
void |
importLTM(java.io.InputStream in,
TopicMapLogger logger) |
void |
importXTM(java.io.InputStream in,
TopicMapLogger logger) |
boolean |
isTopicMapChanged()
Checks if the topic map has been changed since the last call to resetTopicMapChanged.
|
void |
mergeIn(TopicMap tm,
TopicMapLogger tmLogger)
Merges the contents of the given topic map in this topic map.
|
void |
printIndexDebugInfo() |
java.util.Collection<Association> |
queryAssociation(java.lang.String query)
Executes a database query and returns results as a collection of associations.
|
Topic |
querySingleTopic(java.lang.String query)
Same as queryTopic but only returns the first topic in the result set or
null if the result set is empty.
|
java.util.Collection<Topic> |
queryTopic(java.lang.String query)
Executes a database query and returns results as a collection of topics.
|
void |
removeTopicMapListener(TopicMapListener listener)
Removes a topic map listener.
|
void |
resetCompleteIndex()
Restarts the topic index cleaner thread.
|
boolean |
resetTopicMapChanged() |
java.util.Collection<Topic> |
search(java.lang.String query,
TopicMapSearchOptions options)
Searches the topic map for the given string.
|
void |
setCompleteIndex()
Tries to set complete index attribute.
|
void |
setTrackDependent(boolean v)
NOTE: The two trackDependent methods are mostly deprecated.
|
void |
topicBaseNameChanged(Topic t,
java.lang.String newName,
java.lang.String oldName) |
void |
topicBNChanged(Topic t,
java.lang.String old) |
void |
topicChanged(Topic t) |
void |
topicDataChanged(Topic t,
Topic type,
Topic version,
java.lang.String newValue,
java.lang.String oldValue) |
(package private) void |
topicRemoved(Topic t) |
void |
topicSIChanged(DatabaseTopic t,
Locator deleted,
Locator added) |
void |
topicSubjectIdentifierChanged(Topic t,
Locator added,
Locator removed) |
void |
topicSubjectLocatorChanged(Topic t,
Locator newLocator,
Locator oldLocator) |
void |
topicTypeChanged(Topic t,
Topic added,
Topic removed) |
void |
topicVariantChanged(Topic t,
java.util.Collection<Topic> scope,
java.lang.String newName,
java.lang.String oldName) |
boolean |
trackingDependent() |
collectionToSQL, createConnection, escapeSQL, executeCountQuery, executeQuery, executeUpdate, getConnection, getConnectionParams, getDatabaseFlavour, getDBConnectionString, getDBDriver, getDBPassword, getDBUser, getRowIterator, isConnected, isReadOnly, testReadOnly
addTopicMapListeners, checkAssociationConsistency, copyTopicCollectionIn, createLocator, createLocator, escapeXML, exportJTM, exportJTM, exportJTM, exportJTM, exportLTM, exportLTM, exportLTM, exportLTM, exportTopicMap, exportTopicMap, exportXTM, exportXTM, exportXTM, exportXTM, exportXTM10, exportXTM10, exportXTM10, exportXTM20, exportXTM20, forceStop, getConsistencyCheck, getLogger, getMergingTopics, getParentTopicMap, getRootTopicMap, getTopic, getTopicBySubjectLocator, getTopics, getTopicsOfType, hlog, importJTM, importJTM, importJTM, importJTM, importJTM, importJTM, importLTM, importLTM, importLTM, importLTM, importTopicMap, importTopicMap, importTopicMap, importXTM, importXTM, importXTM, importXTM, log, log, log, makeJTMString, makeJTMTopicId, makeLTMString, makeLTMTopicId, makeSubjectIndicator, makeSubjectIndicatorAsLocator, mergeIn, setConsistencyCheck, setLogger, setLogTitle, setParentTopicMap, setProgress, setProgressMax, setReadOnly
protected boolean changed
protected WeakTopicIndex topicIndex
WeakTopicIndex
protected java.util.ArrayList<TopicMapListener> topicMapListeners
protected java.util.ArrayList<TopicMapListener> disabledListeners
protected boolean completeIndexes
A flag indicating that the topicIndex
is a full index of
everything existing in this topic map. Normally it is not. However, when
you import something in an empty topic map, you can stop the index
cleaner thread that is normally deleting rarely used topics from
index. Because all created topics and associations are added to the index, this will
result in an index containing everything in the topic map.
The index is done with weak references so the actual objects might not be found in the index but even if this is the case, the index will contain the information if such an object exists in the actual database or not.
protected java.lang.Object indexLock
public DatabaseTopicMap(java.lang.String dbDriver, java.lang.String dbConnectionString, java.lang.String dbUser, java.lang.String dbPassword) throws java.sql.SQLException
java.sql.SQLException
public DatabaseTopicMap(java.lang.String dbDriver, java.lang.String dbConnectionString, java.lang.String dbUser, java.lang.String dbPassword, java.lang.Object connectionParams) throws java.sql.SQLException
java.sql.SQLException
public DatabaseTopicMap(java.lang.String dbDriver, java.lang.String dbConnectionString, java.lang.String dbUser, java.lang.String dbPassword, java.lang.String initScript) throws java.sql.SQLException
java.sql.SQLException
public DatabaseTopicMap(java.lang.String dbDriver, java.lang.String dbConnectionString, java.lang.String dbUser, java.lang.String dbPassword, java.lang.String initScript, java.lang.Object connectionParams) throws java.sql.SQLException
java.sql.SQLException
public void clearTopicMap() throws TopicMapException
clearTopicMap
in class TopicMap
TopicMapException
public void clearTopicMapIndexes()
clearTopicMapIndexes
in class TopicMap
public void printIndexDebugInfo()
public void checkSIConsistency() throws TopicMapException
TopicMapException
public void checkSIConsistency(TopicMapLogger logger) throws TopicMapException
TopicMapException
public void checkAssociationConsistency(TopicMapLogger logger) throws TopicMapException
TopicMap
checkAssociationConsistency
in class TopicMap
TopicMapException
public void close()
close
in class AbstractDatabaseTopicMap
public DatabaseTopic buildTopic(java.util.Map<java.lang.String,java.lang.Object> row) throws TopicMapException
TopicMapException
public DatabaseTopic buildTopic(java.lang.Object id, java.lang.Object baseName, java.lang.Object subjectLocator) throws TopicMapException
TopicMapException
public DatabaseTopic buildTopic(java.lang.String id, java.lang.String baseName, java.lang.String subjectLocator) throws TopicMapException
TopicMapException
public DatabaseAssociation buildAssociation(java.util.Map<java.lang.String,java.lang.Object> row) throws TopicMapException
TopicMapException
public DatabaseAssociation buildAssociation(java.lang.Object associationId, java.lang.Object typeId, java.lang.Object typeName, java.lang.Object typeSL) throws TopicMapException
TopicMapException
public DatabaseAssociation buildAssociation(java.lang.String associationId, java.lang.String typeId, java.lang.String typeName, java.lang.String typeSL) throws TopicMapException
TopicMapException
public DatabaseAssociation buildAssociation(java.lang.String associationId, DatabaseTopic type)
public java.util.Collection<Topic> queryTopic(java.lang.String query) throws TopicMapException
TopicMapException
public Topic querySingleTopic(java.lang.String query) throws TopicMapException
TopicMapException
public java.util.Collection<Association> queryAssociation(java.lang.String query) throws TopicMapException
TopicMapException
public Topic getTopic(java.util.Collection<Locator> SIs) throws TopicMapException
TopicMapException
public void topicSIChanged(DatabaseTopic t, Locator deleted, Locator added)
public void topicBNChanged(Topic t, java.lang.String old) throws TopicMapException
TopicMapException
public Topic getTopic(Locator si) throws TopicMapException
TopicMap
getTopic
in class TopicMap
TopicMapException
public Topic getTopicBySubjectLocator(Locator sl) throws TopicMapException
TopicMap
getTopicBySubjectLocator
in class TopicMap
TopicMapException
public Topic createTopic(java.lang.String id) throws TopicMapException
TopicMap
createTopic
in class TopicMap
TopicMapException
public Topic createTopic() throws TopicMapException
TopicMap
createTopic
in class TopicMap
TopicMapException
public Association createAssociation(Topic type) throws TopicMapException
TopicMap
createAssociation
in class TopicMap
TopicMapException
public java.util.Collection<Topic> getTopicsOfType(Topic type) throws TopicMapException
TopicMap
getTopicsOfType
in class TopicMap
TopicMapException
public Topic getTopicWithBaseName(java.lang.String name) throws TopicMapException
TopicMap
getTopicWithBaseName
in class TopicMap
TopicMapException
public java.util.Iterator<Topic> getTopics()
TopicMap
public Topic[] getTopics(java.lang.String[] sis) throws TopicMapException
TopicMap
getTopics
in class TopicMap
TopicMapException
public java.util.Iterator<Association> getAssociations()
getAssociations
in class TopicMap
public java.util.Collection<Association> getAssociationsOfType(Topic type) throws TopicMapException
TopicMap
getAssociationsOfType
in class TopicMap
TopicMapException
public int getNumTopics()
TopicMap
getNumTopics
in class TopicMap
public int getNumAssociations()
TopicMap
getNumAssociations
in class TopicMap
private Topic _copyTopicIn(Topic t, boolean deep, java.util.HashMap<Topic,Locator> copied) throws TopicMapException
TopicMapException
private Topic _copyTopicIn(Topic t, boolean deep, boolean stub, java.util.HashMap<Topic,Locator> copied) throws TopicMapException
TopicMapException
private Association _copyAssociationIn(Association a) throws TopicMapException
TopicMapException
public Association copyAssociationIn(Association a) throws TopicMapException
TopicMap
copyAssociationIn
in class TopicMap
TopicMapException
public Topic copyTopicIn(Topic t, boolean deep) throws TopicMapException
TopicMap
copyTopicIn
in class TopicMap
TopicMapException
public void copyTopicAssociationsIn(Topic t) throws TopicMapException
TopicMap
copyTopicAssociationsIn
in class TopicMap
TopicMapException
public void importXTM(java.io.InputStream in, TopicMapLogger logger) throws java.io.IOException, TopicMapException
importXTM
in class TopicMap
java.io.IOException
TopicMapException
public void importLTM(java.io.InputStream in, TopicMapLogger logger) throws java.io.IOException, TopicMapException
importLTM
in class TopicMap
java.io.IOException
TopicMapException
public void importLTM(java.io.File in) throws java.io.IOException, TopicMapException
importLTM
in class TopicMap
java.io.IOException
TopicMapException
public void mergeIn(TopicMap tm, TopicMapLogger tmLogger) throws TopicMapException
TopicMap
mergeIn
in class TopicMap
TopicMapException
public void setCompleteIndex()
completeIndexes
public void resetCompleteIndex()
public boolean trackingDependent()
trackingDependent
in class TopicMap
public void setTrackDependent(boolean v)
TopicMap
setTrackDependent
in class TopicMap
public boolean isTopicMapChanged()
TopicMap
isTopicMapChanged
in class TopicMap
public boolean resetTopicMapChanged()
resetTopicMapChanged
in class TopicMap
TopicMap.isTopicMapChanged()
public java.util.Collection<Topic> search(java.lang.String query, TopicMapSearchOptions options)
TopicMap
public TopicMapStatData getStatistics(TopicMapStatOptions options) throws TopicMapException
getStatistics
in class TopicMap
TopicMapException
public java.util.List<TopicMapListener> getTopicMapListeners()
TopicMap
getTopicMapListeners
in class TopicMap
public void addTopicMapListener(TopicMapListener listener)
TopicMap
addTopicMapListener
in class TopicMap
public void removeTopicMapListener(TopicMapListener listener)
TopicMap
removeTopicMapListener
in class TopicMap
public void disableAllListeners()
disableAllListeners
in class TopicMap
public void enableAllListeners()
enableAllListeners
in class TopicMap
void topicRemoved(Topic t) throws TopicMapException
TopicMapException
void associationRemoved(Association a) throws TopicMapException
TopicMapException
public void topicSubjectIdentifierChanged(Topic t, Locator added, Locator removed) throws TopicMapException
TopicMapException
public void topicBaseNameChanged(Topic t, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapException
public void topicTypeChanged(Topic t, Topic added, Topic removed) throws TopicMapException
TopicMapException
public void topicVariantChanged(Topic t, java.util.Collection<Topic> scope, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapException
public void topicDataChanged(Topic t, Topic type, Topic version, java.lang.String newValue, java.lang.String oldValue) throws TopicMapException
TopicMapException
public void topicSubjectLocatorChanged(Topic t, Locator newLocator, Locator oldLocator) throws TopicMapException
TopicMapException
public void topicChanged(Topic t) throws TopicMapException
TopicMapException
public void associationTypeChanged(Association a, Topic newType, Topic oldType) throws TopicMapException
TopicMapException
public void associationPlayerChanged(Association a, Topic role, Topic newPlayer, Topic oldPlayer) throws TopicMapException
TopicMapException
public void associationChanged(Association a) throws TopicMapException
TopicMapException
public void commit() throws java.sql.SQLException, TopicMapException
commit
in class AbstractDatabaseTopicMap
java.sql.SQLException
TopicMapException
Copyright 2004-2015 Wandora Team