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, unconnectedconsistencyCheck, 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, testReadOnlyaddTopicMapListeners, 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, setReadOnlyprotected boolean changed
protected WeakTopicIndex topicIndex
WeakTopicIndexprotected 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.SQLExceptionpublic 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.SQLExceptionpublic 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.SQLExceptionpublic 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.SQLExceptionpublic void clearTopicMap()
throws TopicMapException
clearTopicMap in class TopicMapTopicMapExceptionpublic void clearTopicMapIndexes()
clearTopicMapIndexes in class TopicMappublic void printIndexDebugInfo()
public void checkSIConsistency()
throws TopicMapException
TopicMapExceptionpublic void checkSIConsistency(TopicMapLogger logger) throws TopicMapException
TopicMapExceptionpublic void checkAssociationConsistency(TopicMapLogger logger) throws TopicMapException
TopicMapcheckAssociationConsistency in class TopicMapTopicMapExceptionpublic void close()
close in class AbstractDatabaseTopicMappublic DatabaseTopic buildTopic(java.util.Map<java.lang.String,java.lang.Object> row) throws TopicMapException
TopicMapExceptionpublic DatabaseTopic buildTopic(java.lang.Object id, java.lang.Object baseName, java.lang.Object subjectLocator) throws TopicMapException
TopicMapExceptionpublic DatabaseTopic buildTopic(java.lang.String id, java.lang.String baseName, java.lang.String subjectLocator) throws TopicMapException
TopicMapExceptionpublic DatabaseAssociation buildAssociation(java.util.Map<java.lang.String,java.lang.Object> row) throws TopicMapException
TopicMapExceptionpublic DatabaseAssociation buildAssociation(java.lang.Object associationId, java.lang.Object typeId, java.lang.Object typeName, java.lang.Object typeSL) throws TopicMapException
TopicMapExceptionpublic DatabaseAssociation buildAssociation(java.lang.String associationId, java.lang.String typeId, java.lang.String typeName, java.lang.String typeSL) throws TopicMapException
TopicMapExceptionpublic DatabaseAssociation buildAssociation(java.lang.String associationId, DatabaseTopic type)
public java.util.Collection<Topic> queryTopic(java.lang.String query) throws TopicMapException
TopicMapExceptionpublic Topic querySingleTopic(java.lang.String query) throws TopicMapException
TopicMapExceptionpublic java.util.Collection<Association> queryAssociation(java.lang.String query) throws TopicMapException
TopicMapExceptionpublic Topic getTopic(java.util.Collection<Locator> SIs) throws TopicMapException
TopicMapExceptionpublic void topicSIChanged(DatabaseTopic t, Locator deleted, Locator added)
public void topicBNChanged(Topic t, java.lang.String old) throws TopicMapException
TopicMapExceptionpublic Topic getTopic(Locator si) throws TopicMapException
TopicMapgetTopic in class TopicMapTopicMapExceptionpublic Topic getTopicBySubjectLocator(Locator sl) throws TopicMapException
TopicMapgetTopicBySubjectLocator in class TopicMapTopicMapExceptionpublic Topic createTopic(java.lang.String id) throws TopicMapException
TopicMapcreateTopic in class TopicMapTopicMapExceptionpublic Topic createTopic() throws TopicMapException
TopicMapcreateTopic in class TopicMapTopicMapExceptionpublic Association createAssociation(Topic type) throws TopicMapException
TopicMapcreateAssociation in class TopicMapTopicMapExceptionpublic java.util.Collection<Topic> getTopicsOfType(Topic type) throws TopicMapException
TopicMapgetTopicsOfType in class TopicMapTopicMapExceptionpublic Topic getTopicWithBaseName(java.lang.String name) throws TopicMapException
TopicMapgetTopicWithBaseName in class TopicMapTopicMapExceptionpublic java.util.Iterator<Topic> getTopics()
TopicMappublic Topic[] getTopics(java.lang.String[] sis) throws TopicMapException
TopicMapgetTopics in class TopicMapTopicMapExceptionpublic java.util.Iterator<Association> getAssociations()
getAssociations in class TopicMappublic java.util.Collection<Association> getAssociationsOfType(Topic type) throws TopicMapException
TopicMapgetAssociationsOfType in class TopicMapTopicMapExceptionpublic int getNumTopics()
TopicMapgetNumTopics in class TopicMappublic int getNumAssociations()
TopicMapgetNumAssociations in class TopicMapprivate Topic _copyTopicIn(Topic t, boolean deep, java.util.HashMap<Topic,Locator> copied) throws TopicMapException
TopicMapExceptionprivate Topic _copyTopicIn(Topic t, boolean deep, boolean stub, java.util.HashMap<Topic,Locator> copied) throws TopicMapException
TopicMapExceptionprivate Association _copyAssociationIn(Association a) throws TopicMapException
TopicMapExceptionpublic Association copyAssociationIn(Association a) throws TopicMapException
TopicMapcopyAssociationIn in class TopicMapTopicMapExceptionpublic Topic copyTopicIn(Topic t, boolean deep) throws TopicMapException
TopicMapcopyTopicIn in class TopicMapTopicMapExceptionpublic void copyTopicAssociationsIn(Topic t) throws TopicMapException
TopicMapcopyTopicAssociationsIn in class TopicMapTopicMapExceptionpublic void importXTM(java.io.InputStream in,
TopicMapLogger logger)
throws java.io.IOException,
TopicMapException
importXTM in class TopicMapjava.io.IOExceptionTopicMapExceptionpublic void importLTM(java.io.InputStream in,
TopicMapLogger logger)
throws java.io.IOException,
TopicMapException
importLTM in class TopicMapjava.io.IOExceptionTopicMapExceptionpublic void importLTM(java.io.File in)
throws java.io.IOException,
TopicMapException
importLTM in class TopicMapjava.io.IOExceptionTopicMapExceptionpublic void mergeIn(TopicMap tm, TopicMapLogger tmLogger) throws TopicMapException
TopicMapmergeIn in class TopicMapTopicMapExceptionpublic void setCompleteIndex()
completeIndexespublic void resetCompleteIndex()
public boolean trackingDependent()
trackingDependent in class TopicMappublic void setTrackDependent(boolean v)
TopicMapsetTrackDependent in class TopicMappublic boolean isTopicMapChanged()
TopicMapisTopicMapChanged in class TopicMappublic boolean resetTopicMapChanged()
resetTopicMapChanged in class TopicMapTopicMap.isTopicMapChanged()public java.util.Collection<Topic> search(java.lang.String query, TopicMapSearchOptions options)
TopicMappublic TopicMapStatData getStatistics(TopicMapStatOptions options) throws TopicMapException
getStatistics in class TopicMapTopicMapExceptionpublic java.util.List<TopicMapListener> getTopicMapListeners()
TopicMapgetTopicMapListeners in class TopicMappublic void addTopicMapListener(TopicMapListener listener)
TopicMapaddTopicMapListener in class TopicMappublic void removeTopicMapListener(TopicMapListener listener)
TopicMapremoveTopicMapListener in class TopicMappublic void disableAllListeners()
disableAllListeners in class TopicMappublic void enableAllListeners()
enableAllListeners in class TopicMapvoid topicRemoved(Topic t) throws TopicMapException
TopicMapExceptionvoid associationRemoved(Association a) throws TopicMapException
TopicMapExceptionpublic void topicSubjectIdentifierChanged(Topic t, Locator added, Locator removed) throws TopicMapException
TopicMapExceptionpublic void topicBaseNameChanged(Topic t, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapExceptionpublic void topicTypeChanged(Topic t, Topic added, Topic removed) throws TopicMapException
TopicMapExceptionpublic void topicVariantChanged(Topic t, java.util.Collection<Topic> scope, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapExceptionpublic void topicDataChanged(Topic t, Topic type, Topic version, java.lang.String newValue, java.lang.String oldValue) throws TopicMapException
TopicMapExceptionpublic void topicSubjectLocatorChanged(Topic t, Locator newLocator, Locator oldLocator) throws TopicMapException
TopicMapExceptionpublic void topicChanged(Topic t) throws TopicMapException
TopicMapExceptionpublic void associationTypeChanged(Association a, Topic newType, Topic oldType) throws TopicMapException
TopicMapExceptionpublic void associationPlayerChanged(Association a, Topic role, Topic newPlayer, Topic oldPlayer) throws TopicMapException
TopicMapExceptionpublic void associationChanged(Association a) throws TopicMapException
TopicMapExceptionpublic void commit()
throws java.sql.SQLException,
TopicMapException
commit in class AbstractDatabaseTopicMapjava.sql.SQLExceptionTopicMapExceptionCopyright 2004-2015 Wandora Team