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
TopicMapException
public 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.IOException
TopicMapException
public TopicMap readTopicMap(java.lang.String file, java.lang.String key) throws java.io.IOException, TopicMapException
java.io.IOException
TopicMapException
public TopicMap readTopicMap(java.io.InputStream in) throws java.io.IOException, TopicMapException
java.io.IOException
TopicMapException
public TopicMap readTopicMap(java.io.InputStream in, java.lang.String key) throws java.io.IOException, TopicMapException
java.io.IOException
TopicMapException
public void serializeTopicMap(TopicMap tm, java.io.OutputStream out) throws java.io.IOException, WandoraException
java.io.IOException
WandoraException
public void mergeInTopicMapsNoLock(java.util.Collection urls) throws WandoraException
WandoraException
public void mergeInTopicMaps(java.util.Collection urls) throws WandoraException
WandoraException
public void mergeInTopicMap(java.io.InputStream in) throws java.io.IOException, WandoraException
java.io.IOException
WandoraException
public void mergeInTopicMapNoLock(java.io.InputStream in) throws java.io.IOException, WandoraException
java.io.IOException
WandoraException
public void mergeInTopicMap(TopicMap tm) throws WandoraException
WandoraException
public void mergeInTopicMapNoLock(TopicMap tm) throws WandoraException
WandoraException
public 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
WandoraException
public java.util.Collection search(java.lang.String query, java.lang.String lang) throws WandoraException
WandoraException
public void updateSearchIndex() throws WandoraException
WandoraException
public void rebuildSearchIndex() throws WandoraException
WandoraException
public void rebuildSearchIndex(boolean checkNeedsUpdate) throws WandoraException
WandoraException
public TMBox getTMBox()
private void closeSearcher() throws java.io.IOException
java.io.IOException
private void buildIndex(java.lang.String indexPath, TopicMap tm) throws java.io.IOException
java.io.IOException
private 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.IOException
TopicMapException
private java.util.Collection searchTopic(java.lang.String word, int searchIndex) throws java.io.IOException
java.io.IOException
private java.util.Collection searchTopic(java.lang.String word, java.lang.String searchIndex) throws java.io.IOException
java.io.IOException
private java.util.Collection searchTopic(java.lang.String word, java.lang.String searchIndex, java.lang.String lang) throws java.io.IOException
java.io.IOException
public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public void saveTopicMaps(boolean locked) throws java.io.IOException, TopicMapException
java.io.IOException
TopicMapException
public void saveTopicMapsNoLock() throws java.io.IOException, TopicMapException
java.io.IOException
TopicMapException
public void run()
run
in interface java.lang.Runnable
public void doShutdown()
public void topicChanged(Topic topic) throws TopicMapException
TopicMapListener
topicChanged
in interface TopicMapListener
TopicMapException
public void topicChanged(Topic topic, boolean shallow) throws TopicMapException
TopicMapException
public void associationChanged(Association a) throws TopicMapException
TopicMapListener
associationChanged
in interface TopicMapListener
TopicMapException
public void associationRemoved(Association a) throws TopicMapException
TopicMapListener
associationRemoved
in interface TopicMapListener
TopicMapException
public void topicRemoved(Topic t) throws TopicMapException
TopicMapListener
topicRemoved
in interface TopicMapListener
TopicMapException
public void topicSubjectIdentifierChanged(Topic t, Locator added, Locator removed) throws TopicMapException
TopicMapListener
topicSubjectIdentifierChanged
in interface TopicMapListener
TopicMapException
public void topicBaseNameChanged(Topic t, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapListener
topicBaseNameChanged
in interface TopicMapListener
TopicMapException
public void topicTypeChanged(Topic t, Topic added, Topic removed) throws TopicMapException
TopicMapListener
topicTypeChanged
in interface TopicMapListener
TopicMapException
public void topicVariantChanged(Topic t, java.util.Collection<Topic> scope, java.lang.String newName, java.lang.String oldName) throws TopicMapException
TopicMapListener
topicVariantChanged
in interface TopicMapListener
TopicMapException
public void topicDataChanged(Topic t, Topic type, Topic version, java.lang.String newValue, java.lang.String oldValue) throws TopicMapException
TopicMapListener
topicDataChanged
in interface TopicMapListener
TopicMapException
public void topicSubjectLocatorChanged(Topic t, Locator newLocator, Locator oldLocator) throws TopicMapException
TopicMapListener
topicSubjectLocatorChanged
in interface TopicMapListener
TopicMapException
public void associationTypeChanged(Association a, Topic newType, Topic oldType) throws TopicMapException
TopicMapListener
associationTypeChanged
in interface TopicMapListener
TopicMapException
public void associationPlayerChanged(Association a, Topic role, Topic newPlayer, Topic oldPlayer) throws TopicMapException
TopicMapListener
associationPlayerChanged
in interface TopicMapListener
TopicMapException
public boolean isAdminUser(java.lang.String user, java.lang.String password)
Copyright 2004-2015 Wandora Team