public class DatabaseTopicMap extends TopicMap
Modifier and Type | Field and Description |
---|---|
protected boolean |
changed
Deprecated.
|
protected boolean |
completeIndexes
Deprecated.
A flag indicating that the
topicIndex is a full index of
everything existing in this topic map. |
protected java.sql.Connection |
connection
Deprecated.
|
protected java.lang.Object |
connectionParams
Deprecated.
|
protected java.lang.String |
databaseFlavour
Deprecated.
The database flavor.
|
protected java.lang.String |
dbConnectionString
Deprecated.
|
protected java.lang.String |
dbDriver
Deprecated.
|
protected java.lang.String |
dbPassword
Deprecated.
|
protected java.lang.String |
dbUser
Deprecated.
|
protected java.util.ArrayList<TopicMapListener> |
disabledListeners
Deprecated.
|
protected java.lang.Object |
indexLock
Deprecated.
|
protected boolean |
isDBReadOnly
Deprecated.
Note that this is different than topic map read only property.
|
private int |
queryCounter
Deprecated.
|
private java.lang.Object |
queryLock
Deprecated.
|
protected SQLProxyClient |
sqlProxy
Deprecated.
|
protected WeakTopicIndex |
topicIndex
Deprecated.
The WeakTopicIndex used to index topics.
|
protected java.util.ArrayList<TopicMapListener> |
topicMapListeners
Deprecated.
|
protected boolean |
unconnected
Deprecated.
|
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)
Deprecated.
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)
Deprecated.
|
DatabaseTopicMap(java.lang.String dbDriver,
java.lang.String dbConnectionString,
java.lang.String dbUser,
java.lang.String dbPassword,
java.lang.String initScript)
Deprecated.
|
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)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
private Association |
_copyAssociationIn(Association a)
Deprecated.
|
private Topic |
_copyTopicIn(Topic t,
boolean deep,
boolean stub,
java.util.Hashtable<Topic,Locator> copied)
Deprecated.
|
private Topic |
_copyTopicIn(Topic t,
boolean deep,
java.util.Hashtable copied)
Deprecated.
|
void |
addTopicMapListener(TopicMapListener listener)
Deprecated.
Adds a topic map listener.
|
void |
associationChanged(Association a)
Deprecated.
|
void |
associationPlayerChanged(Association a,
Topic role,
Topic newPlayer,
Topic oldPlayer)
Deprecated.
|
(package private) void |
associationRemoved(Association a)
Deprecated.
|
void |
associationTypeChanged(Association a,
Topic newType,
Topic oldType)
Deprecated.
|
DatabaseAssociation |
buildAssociation(java.util.Map<java.lang.String,java.lang.Object> row)
Deprecated.
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)
Deprecated.
|
DatabaseAssociation |
buildAssociation(java.lang.String associationId,
DatabaseTopic type)
Deprecated.
|
DatabaseAssociation |
buildAssociation(java.lang.String associationId,
java.lang.String typeId,
java.lang.String typeName,
java.lang.String typeSL)
Deprecated.
|
DatabaseTopic |
buildTopic(java.util.Map<java.lang.String,java.lang.Object> row)
Deprecated.
Builds a database topic from a database query result row.
|
DatabaseTopic |
buildTopic(java.lang.Object id,
java.lang.Object baseName,
java.lang.Object subjectLocator)
Deprecated.
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)
Deprecated.
Builds a database topic when given the topic id, basename and subject locator.
|
void |
checkAssociationConsistency(TopicMapLogger logger)
Deprecated.
Checks association consistency and fixes any inconsistencies.
|
void |
checkSIConsistency()
Deprecated.
|
void |
checkSIConsistency(TopicMapLogger logger)
Deprecated.
|
void |
clearTopicMap()
Deprecated.
Deletes everything in the topic map by clearing the database tables.
|
void |
clearTopicMapIndexes()
Deprecated.
Clears the topic index (cache) containing recently accessed database topics.
|
void |
close()
Deprecated.
Closes the topic map.
|
java.lang.String |
collectionToSQL(java.util.Collection<java.lang.String> col)
Deprecated.
Turns a collection of strings into sql syntax representing a collection of strings
that can be used with 'in' clauses.
|
Association |
copyAssociationIn(Association a)
Deprecated.
Copies an association of a different topic map in this topic map.
|
void |
copyTopicAssociationsIn(Topic t)
Deprecated.
Copies all associations of a topic of a different topic map in this topic
map using copyAssociationIn.
|
Topic |
copyTopicIn(Topic t,
boolean deep)
Deprecated.
Copies a topic of different topic map in this topic map.
|
Association |
createAssociation(Topic type)
Deprecated.
Creates a new association of the given type without any members.
|
java.sql.Connection |
createConnection(boolean autocommit)
Deprecated.
Creates a new database connection using the connection parameters given
to the constructor.
|
Topic |
createTopic()
Deprecated.
Creates a new topic without base name, subject identifier, data or any associations.
|
Topic |
createTopic(java.lang.String id)
Deprecated.
Creates a new topic without base name, subject identifier, data or any associations.
|
void |
disableAllListeners()
Deprecated.
|
void |
enableAllListeners()
Deprecated.
|
java.lang.String |
escapeSQL(java.lang.String s)
Deprecated.
Escapes a string so that it can be used in an sql query.
|
private int |
executeCountQuery(java.lang.String query)
Deprecated.
|
java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> |
executeQuery(java.lang.String query)
Deprecated.
Executes a database query and returns the results as a collection.
|
java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> |
executeQuery(java.lang.String query,
java.sql.Connection con)
Deprecated.
|
boolean |
executeUpdate(java.lang.String query)
Deprecated.
|
boolean |
executeUpdate(java.lang.String query,
java.sql.Connection con)
Deprecated.
|
java.util.Iterator<Association> |
getAssociations()
Deprecated.
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)
Deprecated.
Returns all associations in the topic map that are of the given type.
|
java.sql.Connection |
getConnection()
Deprecated.
Gets the connection used with database queries.
|
java.lang.Object |
getConnectionParams()
Deprecated.
A connection parameters object may be stored in the database topic map.
|
(package private) java.lang.String |
getDatabaseFlavour()
Deprecated.
|
java.lang.String |
getDBConnectionString()
Deprecated.
Gets the used jdbc database connection string.
|
java.lang.String |
getDBDriver()
Deprecated.
Gets the used jdbc database driver class.
|
java.lang.String |
getDBPassword()
Deprecated.
Gets the used database password.
|
java.lang.String |
getDBUser()
Deprecated.
Gets the used database user name.
|
int |
getNumAssociations()
Deprecated.
Returns the number of associations in topic map.
|
int |
getNumTopics()
Deprecated.
Returns the number of topics in topic map.
|
TopicMapStatData |
getStatistics(TopicMapStatOptions options)
Deprecated.
|
Topic |
getTopic(java.util.Collection<Locator> SIs)
Deprecated.
|
Topic |
getTopic(Locator si)
Deprecated.
Gets a topic with subject identifier.
|
Topic |
getTopicBySubjectLocator(Locator sl)
Deprecated.
Gets a topic with subject locator.
|
java.util.List<TopicMapListener> |
getTopicMapListeners()
Deprecated.
Gets all topic map listeners.
|
java.util.Iterator<Topic> |
getTopics()
Deprecated.
Gets all topics in the topic map.
|
Topic[] |
getTopics(java.lang.String[] sis)
Deprecated.
Gets the topics whose subject identifiers are given in the array.
|
java.util.Collection<Topic> |
getTopicsOfType(Topic type)
Deprecated.
Gets all topics in the topic map that are of the given type.
|
Topic |
getTopicWithBaseName(java.lang.String name)
Deprecated.
Gets a topic with topic base name.
|
void |
importLTM(java.io.File in)
Deprecated.
|
void |
importLTM(java.io.InputStream in,
TopicMapLogger logger)
Deprecated.
|
void |
importXTM(java.io.InputStream in,
TopicMapLogger logger)
Deprecated.
|
boolean |
isConnected()
Deprecated.
Checks if the database connection is active.
|
boolean |
isReadOnly()
Deprecated.
Does the topic map only allow reading or both reading and writing.
|
boolean |
isTopicMapChanged()
Deprecated.
Checks if the topic map has been changed since the last call to resetTopicMapChanged.
|
void |
mergeIn(TopicMap tm,
TopicMapLogger tmLogger)
Deprecated.
Merges the contents of the given topic map in this topic map.
|
void |
printIndexDebugInfo()
Deprecated.
|
java.util.Collection<Association> |
queryAssociation(java.lang.String query)
Deprecated.
Executes a database query and returns results as a collection of associations.
|
java.util.Collection<Association> |
queryAssociation(java.lang.String query,
java.sql.Connection con)
Deprecated.
|
Topic |
querySingleTopic(java.lang.String query)
Deprecated.
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)
Deprecated.
Executes a database query and returns results as a collection of topics.
|
java.util.Collection<Topic> |
queryTopic(java.lang.String query,
java.sql.Connection con)
Deprecated.
|
void |
removeTopicMapListener(TopicMapListener listener)
Deprecated.
Removes a topic map listener.
|
void |
resetCompleteIndex()
Deprecated.
Restarts the topic index cleaner thread.
|
boolean |
resetTopicMapChanged()
Deprecated.
|
java.util.Collection<Topic> |
search(java.lang.String query,
TopicMapSearchOptions options)
Deprecated.
Searches the topic map for the given string.
|
void |
setCompleteIndex()
Deprecated.
Tries to set complete index attribute.
|
void |
setTrackDependent(boolean v)
Deprecated.
NOTE: The two trackDependent methods are mostly deprecated.
|
boolean |
testReadOnly()
Deprecated.
Tests if the connection allows modifying the topic map.
|
void |
topicBaseNameChanged(Topic t,
java.lang.String newName,
java.lang.String oldName)
Deprecated.
|
void |
topicBNChanged(Topic t,
java.lang.String old)
Deprecated.
|
void |
topicChanged(Topic t)
Deprecated.
|
void |
topicDataChanged(Topic t,
Topic type,
Topic version,
java.lang.String newValue,
java.lang.String oldValue)
Deprecated.
|
(package private) void |
topicRemoved(Topic t)
Deprecated.
|
void |
topicSIChanged(DatabaseTopic t,
Locator deleted,
Locator added)
Deprecated.
|
void |
topicSubjectIdentifierChanged(Topic t,
Locator added,
Locator removed)
Deprecated.
|
void |
topicSubjectLocatorChanged(Topic t,
Locator newLocator,
Locator oldLocator)
Deprecated.
|
void |
topicTypeChanged(Topic t,
Topic added,
Topic removed)
Deprecated.
|
void |
topicVariantChanged(Topic t,
java.util.Collection<Topic> scope,
java.lang.String newName,
java.lang.String oldName)
Deprecated.
|
boolean |
trackingDependent()
Deprecated.
|
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 java.lang.String dbDriver
protected java.lang.String dbConnectionString
protected java.lang.String dbUser
protected java.lang.String dbPassword
protected SQLProxyClient sqlProxy
protected java.lang.String databaseFlavour
The database flavor. Some operations need to be handled differently with different database vendors. This field is used to store what kind of database is being used. Currently it may have following values
"mysql" - MySQL database "generic" - Any other database presumed to be sufficiently standard compliant
It is set automatically based on the connection string used.
protected java.lang.Object connectionParams
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 boolean unconnected
protected boolean isDBReadOnly
protected java.lang.Object indexLock
protected java.sql.Connection connection
private int queryCounter
private final java.lang.Object queryLock
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 java.lang.String getDBDriver()
public java.lang.String getDBConnectionString()
public java.lang.String getDBUser()
public java.lang.String getDBPassword()
public java.lang.Object getConnectionParams()
java.lang.String getDatabaseFlavour()
public boolean isReadOnly()
isReadOnly
in class TopicMap
public boolean testReadOnly()
public void clearTopicMap() throws TopicMapException
clearTopicMap
in class TopicMap
TopicMapException
public void clearTopicMapIndexes()
clearTopicMapIndexes
in class TopicMap
public boolean isConnected()
isConnected
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()
public java.sql.Connection getConnection()
public java.sql.Connection createConnection(boolean autocommit)
public java.lang.String collectionToSQL(java.util.Collection<java.lang.String> col)
public boolean executeUpdate(java.lang.String query) throws TopicMapException
TopicMapException
public boolean executeUpdate(java.lang.String query, java.sql.Connection con) throws TopicMapException
TopicMapException
public java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> executeQuery(java.lang.String query) throws TopicMapException
TopicMapException
public java.util.Collection<java.util.Map<java.lang.String,java.lang.Object>> executeQuery(java.lang.String query, java.sql.Connection con) throws TopicMapException
TopicMapException
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 java.util.Collection<Topic> queryTopic(java.lang.String query, java.sql.Connection con) 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 java.util.Collection<Association> queryAssociation(java.lang.String query, java.sql.Connection con) throws TopicMapException
TopicMapException
public java.lang.String escapeSQL(java.lang.String s)
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.Hashtable copied) throws TopicMapException
TopicMapException
private Topic _copyTopicIn(Topic t, boolean deep, boolean stub, java.util.Hashtable<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 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
public boolean isTopicMapChanged()
TopicMap
isTopicMapChanged
in class TopicMap
public boolean resetTopicMapChanged()
resetTopicMapChanged
in class TopicMap
TopicMap.isTopicMapChanged()
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 java.util.Collection<Topic> search(java.lang.String query, TopicMapSearchOptions options)
TopicMap
public TopicMapStatData getStatistics(TopicMapStatOptions options) throws TopicMapException
getStatistics
in class TopicMap
TopicMapException
private int executeCountQuery(java.lang.String query) throws java.sql.SQLException
java.sql.SQLException
Copyright 2004-2015 Wandora Team