public class WandoraManager extends java.lang.Object implements java.lang.Runnable, TopicMapListener
| Modifier and Type | Class and Description |
|---|---|
private class |
WandoraManager.WandoraShutdownHook |
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
adminPass |
static java.lang.String |
ASSOCIATIONROLE_SI |
static java.lang.String |
ASSOCIATIONROLECATEGORIES_SI |
static java.lang.String |
ASSOCIATIONTYPE_SI |
private java.lang.String |
autoSaveFile |
private java.util.ArrayList |
autoSaveMaps |
private static long |
baseLocatorCounter |
static java.lang.String |
CATEGORYHIERARCHY_SI |
private java.util.HashSet |
changedTopics |
private java.util.HashSet |
changedTopicsShallow |
static java.lang.String |
ENTRYTIME_SI |
static java.lang.String |
HIDELEVEL_SI |
private java.lang.String |
historySaveFile |
private boolean |
indexNeedsUpdate |
private boolean |
keepHistory |
static java.lang.String |
LANGINDEPENDENT_SI |
static java.lang.String |
LANGUAGE_SI |
private boolean |
lazyIndexUpdate |
static int |
LOCK_READ |
static int |
LOCK_WRITE |
private Logger |
logger |
static java.lang.String |
OCCURRENCETYPE_SI |
private java.lang.String |
projectFile |
private boolean |
projectFileAutoUpdate |
private long |
projectFileDateStamp |
static java.lang.String |
PROP_ADMINPASS |
static java.lang.String |
PROP_AUTOSAVEFILE |
static java.lang.String |
PROP_AUTOSAVEHISTORYFILE |
static java.lang.String |
PROP_AUTOSAVEINTERVAL |
static java.lang.String |
PROP_AUTOSAVEMAPS |
static java.lang.String |
PROP_FACTORYFEATURES |
static java.lang.String |
PROP_FACTORYPROPERTIES |
static java.lang.String |
PROP_INDEXPATH |
static java.lang.String |
PROP_KEEPHISTORY |
static java.lang.String |
PROP_LAZYINDEXUPDATE |
static java.lang.String |
PROP_PROJECTFILE |
static java.lang.String |
PROP_PROJECTFILE_AUTOUPDATE |
static java.lang.String |
PROP_SHUTDOWNHOOK |
static java.lang.String |
ROLE_SI |
private int |
runCount |
private boolean |
running |
private long |
saveInterval |
private org.apache.lucene.search.IndexSearcher |
searcher |
private java.lang.String |
searchIndexPath |
private ReaderWriterLock |
searchLock |
static java.lang.String |
SUBCATEGORY_SI |
static java.lang.String |
SUPERCATEGORY_SI |
private TMBox |
tmBox |
private ReaderWriterLock |
tmLock |
private TopicMap |
topicMap |
private java.util.HashMap |
topicMaps |
static java.lang.String |
VARIANT_NAME_VERSION_SI |
static java.lang.String |
WANDORACLASS_SI |
private java.lang.Thread |
workerThread |
| Constructor and Description |
|---|
WandoraManager() |
WandoraManager(Logger logger) |
WandoraManager(Logger logger,
java.util.Properties properties,
java.lang.String prefix) |
WandoraManager(java.util.Properties properties) |
WandoraManager(java.util.Properties properties,
java.lang.String prefix) |
| Modifier and Type | Method and Description |
|---|---|
void |
addTopicMap(java.lang.String key,
TopicMap tm) |
void |
associationChanged(Association a)
A notification used to report general or large changes in association.
|
void |
associationPlayerChanged(Association a,
Topic role,
Topic newPlayer,
Topic oldPlayer)
A notification that a player in an association with a certain role has
been changed.
|
void |
associationRemoved(Association a)
A notification that an association has been completely removed.
|
void |
associationTypeChanged(Association a,
Topic newType,
Topic oldType)
A notification that association type has changed.
|
private void |
buildIndex(java.lang.String indexPath,
TopicMap tm) |
private void |
closeSearcher() |
Locator |
createLocator(java.lang.String uri) |
TopicMap |
createTopicMap() |
void |
doShutdown() |
static java.lang.String |
getFreeBaseLocator() |
TMBox |
getTMBox() |
Topic |
getTopicByName(java.lang.String name) |
Topic |
getTopicBySI(Locator si) |
Topic |
getTopicBySI(java.lang.String si) |
TopicMap |
getTopicMap() |
TopicMap |
getTopicMap(java.lang.String key) |
java.util.Collection |
getTopicsOfType(Locator l) |
java.util.Collection |
getTopicsOfType(java.lang.String si) |
boolean |
indexNeedsUpdate() |
void |
initialize(TopicMap tm) |
boolean |
isAdminUser(java.lang.String user,
java.lang.String password) |
boolean |
isLazyIndexUpdate() |
java.lang.Object |
lockObject(int depth,
Topic object,
int mode) |
java.lang.Object |
lockObject(LockCallBack callback,
java.util.Set start,
int mode) |
boolean |
lockTopicMap(int mode) |
static void |
main(java.lang.String[] args) |
void |
mergeInTopicMap(java.io.InputStream in) |
void |
mergeInTopicMap(TopicMap tm) |
void |
mergeInTopicMapNoLock(java.io.InputStream in) |
void |
mergeInTopicMapNoLock(TopicMap tm) |
void |
mergeInTopicMaps(java.util.Collection urls) |
void |
mergeInTopicMapsNoLock(java.util.Collection urls) |
TopicMap |
readTopicMap(java.io.InputStream in) |
TopicMap |
readTopicMap(java.io.InputStream in,
java.lang.String key) |
TopicMap |
readTopicMap(java.lang.String file) |
TopicMap |
readTopicMap(java.lang.String file,
java.lang.String key) |
void |
rebuildSearchIndex() |
void |
rebuildSearchIndex(boolean checkNeedsUpdate) |
void |
releaseObject(java.lang.Object handle) |
void |
releaseTopicMap(int mode) |
void |
run() |
void |
saveTopicMaps(boolean locked) |
void |
saveTopicMapsNoLock() |
java.util.Collection |
search(java.lang.String query) |
java.util.Collection |
search(java.lang.String query,
java.lang.String lang) |
private java.util.Collection |
searchTopic(java.lang.String word,
int searchIndex) |
private java.util.Collection |
searchTopic(java.lang.String word,
java.lang.String searchIndex) |
private java.util.Collection |
searchTopic(java.lang.String word,
java.lang.String searchIndex,
java.lang.String lang) |
void |
serializeTopicMap(TopicMap tm,
java.io.OutputStream out) |
void |
topicBaseNameChanged(Topic t,
java.lang.String newName,
java.lang.String oldName)
Notification that the base name has been changed.
|
void |
topicChanged(Topic topic)
A notification used to report general or large changes in topic, for example when topics are merged.
|
void |
topicChanged(Topic topic,
boolean shallow) |
void |
topicDataChanged(Topic t,
Topic type,
Topic version,
java.lang.String newValue,
java.lang.String oldValue)
Notification that topic occurrence has been changed.
|
void |
topicRemoved(Topic t)
Notification that a topic has been completely removed.
|
void |
topicSubjectIdentifierChanged(Topic t,
Locator added,
Locator removed)
Notification that a subject identifier has changed.
|
void |
topicSubjectLocatorChanged(Topic t,
Locator newLocator,
Locator oldLocator)
Notification that the subject locator has been changed.
|
void |
topicTypeChanged(Topic t,
Topic added,
Topic removed)
Notification that a topic type has changed.
|
void |
topicVariantChanged(Topic t,
java.util.Collection<Topic> scope,
java.lang.String newName,
java.lang.String oldName)
Notification that a variant name has been changed.
|
private void |
updateIndex(java.util.Set changed,
java.util.Set changedShallow,
java.lang.String indexPath,
TopicMap tm) |
void |
updateSearchIndex() |
public static final java.lang.String WANDORACLASS_SI
public static final java.lang.String ASSOCIATIONTYPE_SI
public static final java.lang.String ASSOCIATIONROLE_SI
public static final java.lang.String ROLE_SI
public static final java.lang.String LANGINDEPENDENT_SI
public static final java.lang.String ASSOCIATIONROLECATEGORIES_SI
public static final java.lang.String OCCURRENCETYPE_SI
public static final java.lang.String HIDELEVEL_SI
public static final java.lang.String CATEGORYHIERARCHY_SI
public static final java.lang.String SUPERCATEGORY_SI
public static final java.lang.String SUBCATEGORY_SI
public static final java.lang.String ENTRYTIME_SI
public static final java.lang.String VARIANT_NAME_VERSION_SI
public static final java.lang.String LANGUAGE_SI
public static final int LOCK_READ
public static final int LOCK_WRITE
public static final java.lang.String PROP_LAZYINDEXUPDATE
public static final java.lang.String PROP_INDEXPATH
public static final java.lang.String PROP_AUTOSAVEFILE
public static final java.lang.String PROP_AUTOSAVEHISTORYFILE
public static final java.lang.String PROP_AUTOSAVEINTERVAL
public static final java.lang.String PROP_KEEPHISTORY
public static final java.lang.String PROP_FACTORYFEATURES
public static final java.lang.String PROP_FACTORYPROPERTIES
public static final java.lang.String PROP_SHUTDOWNHOOK
public static final java.lang.String PROP_AUTOSAVEMAPS
public static final java.lang.String PROP_ADMINPASS
public static final java.lang.String PROP_PROJECTFILE
public static final java.lang.String PROP_PROJECTFILE_AUTOUPDATE
private ReaderWriterLock tmLock
private ReaderWriterLock searchLock
private org.apache.lucene.search.IndexSearcher searcher
private TopicMap topicMap
private java.util.HashMap topicMaps
private java.util.HashSet changedTopics
private java.util.HashSet changedTopicsShallow
private TMBox tmBox
private java.lang.String searchIndexPath
private java.lang.String projectFile
private long projectFileDateStamp
private boolean projectFileAutoUpdate
private java.lang.Thread workerThread
private boolean running
private int runCount
private long saveInterval
private boolean keepHistory
private boolean lazyIndexUpdate
private boolean indexNeedsUpdate
private java.lang.String autoSaveFile
private java.lang.String historySaveFile
private java.util.ArrayList autoSaveMaps
private Logger logger
private static java.lang.String adminPass
private static long baseLocatorCounter
public WandoraManager()
public WandoraManager(Logger logger)
public WandoraManager(java.util.Properties properties)
public WandoraManager(java.util.Properties properties,
java.lang.String prefix)
public WandoraManager(Logger logger, java.util.Properties properties, java.lang.String prefix)
public void initialize(TopicMap tm) throws TopicMapException
TopicMapExceptionpublic void addTopicMap(java.lang.String key,
TopicMap tm)
public TopicMap getTopicMap(java.lang.String key)
public static java.lang.String getFreeBaseLocator()
public TopicMap createTopicMap()
public TopicMap readTopicMap(java.lang.String file) throws java.io.IOException, TopicMapException
java.io.IOExceptionTopicMapExceptionpublic TopicMap readTopicMap(java.lang.String file, java.lang.String key) throws java.io.IOException, TopicMapException
java.io.IOExceptionTopicMapExceptionpublic TopicMap readTopicMap(java.io.InputStream in) throws java.io.IOException, TopicMapException
java.io.IOExceptionTopicMapExceptionpublic TopicMap readTopicMap(java.io.InputStream in, java.lang.String key) throws java.io.IOException, TopicMapException
java.io.IOExceptionTopicMapExceptionpublic void serializeTopicMap(TopicMap tm, java.io.OutputStream out) throws java.io.IOException, WandoraException
java.io.IOExceptionWandoraExceptionpublic void mergeInTopicMapsNoLock(java.util.Collection urls)
throws WandoraException
WandoraExceptionpublic void mergeInTopicMaps(java.util.Collection urls)
throws WandoraException
WandoraExceptionpublic void mergeInTopicMap(java.io.InputStream in)
throws java.io.IOException,
WandoraException
java.io.IOExceptionWandoraExceptionpublic void mergeInTopicMapNoLock(java.io.InputStream in)
throws java.io.IOException,
WandoraException
java.io.IOExceptionWandoraExceptionpublic void mergeInTopicMap(TopicMap tm) throws WandoraException
WandoraExceptionpublic void mergeInTopicMapNoLock(TopicMap tm) throws WandoraException
WandoraExceptionpublic Locator createLocator(java.lang.String uri)
public TopicMap getTopicMap()
public java.lang.Object lockObject(int depth,
Topic object,
int mode)
public boolean lockTopicMap(int mode)
public void releaseTopicMap(int mode)
public java.lang.Object lockObject(LockCallBack callback, java.util.Set start, int mode)
public void releaseObject(java.lang.Object handle)
public Topic getTopicBySI(java.lang.String si)
public java.util.Collection getTopicsOfType(java.lang.String si)
public java.util.Collection getTopicsOfType(Locator l)
public Topic getTopicByName(java.lang.String name)
public boolean indexNeedsUpdate()
public boolean isLazyIndexUpdate()
public java.util.Collection search(java.lang.String query)
throws WandoraException
WandoraExceptionpublic java.util.Collection search(java.lang.String query,
java.lang.String lang)
throws WandoraException
WandoraExceptionpublic void updateSearchIndex()
throws WandoraException
WandoraExceptionpublic void rebuildSearchIndex()
throws WandoraException
WandoraExceptionpublic void rebuildSearchIndex(boolean checkNeedsUpdate)
throws WandoraException
WandoraExceptionpublic TMBox getTMBox()
private void closeSearcher()
throws java.io.IOException
java.io.IOExceptionprivate void buildIndex(java.lang.String indexPath,
TopicMap tm)
throws java.io.IOException
java.io.IOExceptionprivate void updateIndex(java.util.Set changed,
java.util.Set changedShallow,
java.lang.String indexPath,
TopicMap tm)
throws java.io.IOException,
TopicMapException
changed - The subject indicators of the changed topics as Strings. Only one subject indicator per
changed topic is needed although it doesn't matter if it contains several subject indicators
of the same topic.java.io.IOExceptionTopicMapExceptionprivate java.util.Collection searchTopic(java.lang.String word,
int searchIndex)
throws java.io.IOException
java.io.IOExceptionprivate java.util.Collection searchTopic(java.lang.String word,
java.lang.String searchIndex)
throws java.io.IOException
java.io.IOExceptionprivate java.util.Collection searchTopic(java.lang.String word,
java.lang.String searchIndex,
java.lang.String lang)
throws java.io.IOException
java.io.IOExceptionpublic static void main(java.lang.String[] args)
throws java.lang.Exception
java.lang.Exceptionpublic void saveTopicMaps(boolean locked)
throws java.io.IOException,
TopicMapException
java.io.IOExceptionTopicMapExceptionpublic void saveTopicMapsNoLock()
throws java.io.IOException,
TopicMapException
java.io.IOExceptionTopicMapExceptionpublic void run()
run in interface java.lang.Runnablepublic void doShutdown()
public void topicChanged(Topic topic) throws TopicMapException
TopicMapListenertopicChanged in interface TopicMapListenerTopicMapExceptionpublic void topicChanged(Topic topic, boolean shallow) throws TopicMapException
TopicMapExceptionpublic void associationChanged(Association a) throws TopicMapException
TopicMapListenerassociationChanged in interface TopicMapListenerTopicMapExceptionpublic void associationRemoved(Association a) throws TopicMapException
TopicMapListenerassociationRemoved in interface TopicMapListenerTopicMapExceptionpublic void topicRemoved(Topic t) throws TopicMapException
TopicMapListenertopicRemoved in interface TopicMapListenerTopicMapExceptionpublic void topicSubjectIdentifierChanged(Topic t, Locator added, Locator removed) throws TopicMapException
TopicMapListenertopicSubjectIdentifierChanged in interface TopicMapListenerTopicMapExceptionpublic void topicBaseNameChanged(Topic t, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapListenertopicBaseNameChanged in interface TopicMapListenerTopicMapExceptionpublic void topicTypeChanged(Topic t, Topic added, Topic removed) throws TopicMapException
TopicMapListenertopicTypeChanged in interface TopicMapListenerTopicMapExceptionpublic void topicVariantChanged(Topic t, java.util.Collection<Topic> scope, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapListenertopicVariantChanged in interface TopicMapListenerTopicMapExceptionpublic void topicDataChanged(Topic t, Topic type, Topic version, java.lang.String newValue, java.lang.String oldValue) throws TopicMapException
TopicMapListenertopicDataChanged in interface TopicMapListenerTopicMapExceptionpublic void topicSubjectLocatorChanged(Topic t, Locator newLocator, Locator oldLocator) throws TopicMapException
TopicMapListenertopicSubjectLocatorChanged in interface TopicMapListenerTopicMapExceptionpublic void associationTypeChanged(Association a, Topic newType, Topic oldType) throws TopicMapException
TopicMapListenerassociationTypeChanged in interface TopicMapListenerTopicMapExceptionpublic void associationPlayerChanged(Association a, Topic role, Topic newPlayer, Topic oldPlayer) throws TopicMapException
TopicMapListenerassociationPlayerChanged in interface TopicMapListenerTopicMapExceptionpublic boolean isAdminUser(java.lang.String user,
java.lang.String password)
Copyright 2004-2015 Wandora Team