|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.salespointframework.core.data.database.PersistenceManager
public class PersistenceManager
The PersistenceManager is the core of SalesPoints Persistence layer Its job is to manage the database connections and persist and recover objects
Nested Class Summary | |
---|---|
static class |
PersistenceManager.LogonInformation
Logon information of users in local Salespoints should work with remote logons in future version |
static class |
PersistenceManager.PerformanceTimer
Simple Performance timer with nano seconds precision |
Field Summary | |
---|---|
java.util.logging.Logger |
logger
The logger |
static int |
MODIFICATION_TRIGGER_WORKER_ENTRY_REMOVE_MULTIPLIER
defines after how much cycles a ModificationEntry should be removed from modification table |
static long |
MODIFICATION_TRIGGER_WORKER_INTERVAL
interval in which ModificationTriggerWorker checks for changes in database |
Constructor Summary | |
---|---|
PersistenceManager()
Constructor |
Method Summary | ||
---|---|---|
boolean |
addDatasourceChangedListener(DatasourceChangeListener dscl)
Add a Datasource changed listener |
|
boolean |
addDatasourceOnChangeListener(DatasourceOnChangeListener docl)
Add a Datasource on change listener |
|
boolean |
addDBCListener(DatabaseConnectionListener dbcl)
Add as database connection listener |
|
boolean |
addPersistenceStateListener(PersistenceStateListener psl)
Add a Persistence state Listener |
|
java.lang.Object |
addToList(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
java.lang.Object o,
java.lang.Object k,
boolean uniqueKey,
java.lang.Object host,
int index,
boolean newIndex)
Core function for persisting lists. this method persists items to the list. |
|
boolean |
attachExternalModificationListener(java.lang.String tableid,
ExternalModificationListener eml)
add an ExternalModificationListener |
|
void |
clearDatabase()
Clears the Database |
|
void |
close()
closes the JDBC connection |
|
int |
countListItems(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
java.lang.Object k,
boolean uniqueKey,
java.lang.Object host,
java.lang.Object o)
Core function for persisting lists. this method counts the items of a list. |
|
void |
dettachExternalModificationListener(java.lang.String tableid,
ExternalModificationListener eml)
remove ExternalModificationListener |
|
protected java.lang.Object |
doTypeChecking(java.lang.Object odata,
java.lang.Class c)
|
|
void |
fireDBCUpdate()
notifies connection listeners about an update |
|
boolean |
forceOpen()
Enforces the connection opening |
|
java.util.List<DatabaseConnection> |
getConnections()
returns a read only list of regsitered database connections |
|
java.util.List<DatabaseConnectionTemplate> |
getConnectionTemplates()
returns the list of Database connection templates |
|
DatabaseConnection |
getDatabaseConnection()
returns the current database connection |
|
java.util.List<java.lang.Object> |
getEntireList(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
boolean uniqueKey,
boolean returnKeys,
java.lang.Object RecoveryContext,
java.lang.Object host,
java.lang.Object k,
boolean isMap)
Core function for persisting lists. this method recovers the entire list. |
|
java.util.List<java.lang.Object> |
getFromList(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
java.lang.Object k,
boolean uniqueKey,
java.lang.Object recoveryContext,
java.lang.Object host,
java.lang.Object ident)
Core function for persisting lists. this method recovers a set of entry objects from the list can be used for Maps as well as Lists |
|
static PersistenceManager |
getInstance()
get the singleton instance |
|
java.util.Map<java.lang.Object,java.lang.Object> |
getLargeList(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
boolean uniqueKey,
java.lang.Object RecoveryContext,
java.lang.Object host,
java.lang.Object k,
boolean isMap)
Core function for persisting lists. this method recovers the entire list. |
|
java.lang.String |
getListId(java.lang.Class c,
java.lang.String id,
java.lang.Object host)
build table name for list |
|
java.lang.String |
getListId(java.lang.Class c,
java.lang.String id,
java.lang.Object host,
boolean raw)
|
|
java.util.Map<java.lang.String,java.lang.Object> |
getObjectCache()
get the object cache, which caches all recovered objects of current session |
|
java.util.Set<java.lang.String> |
getTableCache()
get the table cache, which contains all verified tables of current session |
|
java.util.List<PersistenceManager.LogonInformation> |
getUserSessions()
returns a list of all PersistenceManager.LogonInformation |
|
java.util.List<PersistenceManager.LogonInformation> |
getUserSessions(User user)
returns a list of all PersistenceManager.LogonInformation for given user |
|
void |
initalizeData()
fill database data |
|
boolean |
isOpen()
determines whether the JDBC connection is open |
|
boolean |
isPerformanceMode()
Sets Performance mode. |
|
void |
loadConnections()
Loads connections from PreferenceStorage |
|
void |
logoffUser(SalesPoint sp)
logoff user form given SalesPoint and remove PersistenceManager.LogonInformation record |
|
boolean |
logonUser(User user,
SalesPoint sp)
|
|
void |
markTableAsDirty(java.lang.String tname)
writes a ModificationEntry that marks given table as modified |
|
boolean |
open()
tries to open the JDBC connection, with help of the dbConnection |
|
java.lang.Object |
persist(java.lang.Object o)
Persist an object to DataSource |
|
protected void |
prepareListTable(java.lang.String tname,
java.lang.Class o,
java.lang.Class k,
boolean uniqueKey)
Prepares a table for a list, if table does not exist |
|
protected void |
prepareTable(java.lang.Class c,
java.lang.Object o)
Create a table for a Class, if table doesn't exist |
|
void |
propertyChange(java.beans.PropertyChangeEvent evt)
react on property change |
|
boolean |
realOpen()
this method really tries to open the connection |
|
|
recover(java.lang.Class<T> c,
java.lang.Object ident,
java.lang.Object recoveryContext)
Recovers an object identified by ident. |
|
void |
refireCSChanged()
fire the current connection state again |
|
boolean |
registerConnection(DatabaseConnection dbc)
registers an new Database connection |
|
void |
registerShop(Shop shop)
register shop instance |
|
void |
removeDatasourceChangedListener(DatasourceChangeListener dscl)
Remove a Datasource changed listener |
|
void |
removeDatasourceOnChangeListener(DatasourceOnChangeListener docl)
Remove a datasource on change listener |
|
void |
removeDBCListener(DatabaseConnectionListener dbcl)
Removes a database connection listener |
|
void |
removeListItems(java.lang.Class c,
java.lang.String id,
java.lang.Class oc,
java.lang.Class kc,
java.lang.Object k,
boolean uniqueKey,
java.lang.Object host,
java.lang.Object o,
java.lang.String ctr,
java.lang.Object ctro,
boolean removeItem,
int index)
Core function for persisting lists. this method removes items from a list can be used for Maps as well as Lists |
|
void |
removePersistenceStateListener(PersistenceStateListener psl)
Remove a persistence state listener |
|
void |
saveConnections()
Saves Connections to PrferenceStorage |
|
void |
setBroadcastStateChanged(boolean val)
set broadcastStateChanged |
|
void |
setClassFieldMapper(ClassFieldMapper cfm)
sets the current ClassFieldMapper |
|
void |
setClassNameEncoder(ClassNameEncoder cne)
Sets the current ClassNameEncoder |
|
void |
setConsoleLogLevel(java.util.logging.Level level)
Set the log level for Console output |
|
void |
setDatabaseConnection(DatabaseConnection dbc)
set the current database connection |
|
void |
setLogStream(java.io.PrintWriter log)
Set the LogStream for DriverManager |
|
void |
setPerformanceMode(boolean value)
Set performance mode |
|
void |
unpersist(java.lang.Class c,
java.lang.Object ident)
Removes an Object from DataSource |
|
void |
unregisterConnection(DatabaseConnection dbc)
removes a database connection |
|
void |
unregisterShop()
unregister shop from datasource |
|
protected java.lang.Object |
upsert(java.lang.Object o,
java.lang.Class c)
insert or update an object in persistent storage |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static long MODIFICATION_TRIGGER_WORKER_INTERVAL
ModificationTriggerWorker
checks for changes in database
public static int MODIFICATION_TRIGGER_WORKER_ENTRY_REMOVE_MULTIPLIER
ModificationEntry
should be removed from modification table
public final java.util.logging.Logger logger
Constructor Detail |
---|
public PersistenceManager()
Method Detail |
---|
public void setConsoleLogLevel(java.util.logging.Level level)
public static PersistenceManager getInstance()
public void setClassFieldMapper(ClassFieldMapper cfm)
cfm
- public void setClassNameEncoder(ClassNameEncoder cne)
cne
- public void setLogStream(java.io.PrintWriter log)
log
- public boolean isPerformanceMode()
public void setPerformanceMode(boolean value)
value
- true to activatepublic boolean isOpen()
public void close()
public boolean addDatasourceOnChangeListener(DatasourceOnChangeListener docl)
public void removeDatasourceOnChangeListener(DatasourceOnChangeListener docl)
public boolean addDatasourceChangedListener(DatasourceChangeListener dscl)
public void removeDatasourceChangedListener(DatasourceChangeListener dscl)
public boolean addPersistenceStateListener(PersistenceStateListener psl)
psl
- the listenerpublic void removePersistenceStateListener(PersistenceStateListener psl)
the
- listenerpublic void setBroadcastStateChanged(boolean val)
broadcastStateChanged
val
- public void refireCSChanged()
public void loadConnections()
public void saveConnections()
public java.util.Set<java.lang.String> getTableCache()
public java.util.Map<java.lang.String,java.lang.Object> getObjectCache()
public java.util.List<DatabaseConnectionTemplate> getConnectionTemplates()
public java.util.List<DatabaseConnection> getConnections()
public boolean addDBCListener(DatabaseConnectionListener dbcl)
dbcl
-
public void removeDBCListener(DatabaseConnectionListener dbcl)
dbcl
- public void fireDBCUpdate()
public boolean registerConnection(DatabaseConnection dbc)
dbc
- the connection to be registered
public void unregisterConnection(DatabaseConnection dbc)
dbc
- connection to be removedpublic boolean forceOpen()
public boolean open()
dbConnection
public boolean realOpen()
public void clearDatabase()
public void initalizeData()
protected java.lang.Object doTypeChecking(java.lang.Object odata, java.lang.Class c)
public <T> T recover(java.lang.Class<T> c, java.lang.Object ident, java.lang.Object recoveryContext)
T
- expected class typec
- Class of objectident
- Identification of the objectrecoveryContext
- parameter which will be passed to post-recovering operations
public java.lang.Object persist(java.lang.Object o)
o
- Object to persist
public void unpersist(java.lang.Class c, java.lang.Object ident)
c
- Class of Object to removeident
- objects identificationprotected java.lang.Object upsert(java.lang.Object o, java.lang.Class c)
o
- object to persistc
- class of object
public void markTableAsDirty(java.lang.String tname)
ModificationEntry
that marks given table as modified
tname
- affected tablepublic java.util.Map<java.lang.Object,java.lang.Object> getLargeList(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, boolean uniqueKey, java.lang.Object RecoveryContext, java.lang.Object host, java.lang.Object k, boolean isMap)
c
- Class of calling Listid
- Lists unique idoc
- Class of entry objectkc
- class of key objectuniqueKey
- guaranty max. one occurrence of a keyRecoveryContext
- host
- host objectident
- isMap
-
public java.util.List<java.lang.Object> getEntireList(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, boolean uniqueKey, boolean returnKeys, java.lang.Object RecoveryContext, java.lang.Object host, java.lang.Object k, boolean isMap)
c
- Class of calling Listid
- Lists unique idoc
- Class of entry objectkc
- class of key objectuniqueKey
- guaranty max. one occurrence of a keyreturnKeys
- true, if all keys should be returned. otherwise only entry objects will be returnedRecoveryContext
- host
- host objectident
- isMap
-
public void removeListItems(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, java.lang.Object k, boolean uniqueKey, java.lang.Object host, java.lang.Object o, java.lang.String ctr, java.lang.Object ctro, boolean removeItem, int index)
c
- Class of calling listid
- unique id of calling listoc
- entry objects classkc
- key objects classk
- key to remove. if null: list will be cleareduniqueKey
- guaranty unique occurrence of keyhost
- host objectident
- public int countListItems(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, java.lang.Object k, boolean uniqueKey, java.lang.Object host, java.lang.Object o)
c
- calling class's typeid
- id of calling classoc
- entry objects classkc
- key objects classk
- keys to count. if null: all keys will be counteduniqueKey
- guaranty single occurrence of keyhost
- host objectident
-
public java.util.List<java.lang.Object> getFromList(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, java.lang.Object k, boolean uniqueKey, java.lang.Object recoveryContext, java.lang.Object host, java.lang.Object ident)
c
- lists classid
- lists unique idoc
- objects classkc
- keys classk
- keys to recoveruniqueKey
- recoveryContext
- host
- host objectident
-
public java.lang.Object addToList(java.lang.Class c, java.lang.String id, java.lang.Class oc, java.lang.Class kc, java.lang.Object o, java.lang.Object k, boolean uniqueKey, java.lang.Object host, int index, boolean newIndex)
c
- lists classid
- lists unique idoc
- objects classkc
- keys classo
- object to persistk
- objects key. can be null, is autoKeysuniqueKey
- guaranty single occurrence of keyhost
- host element
public java.lang.String getListId(java.lang.Class c, java.lang.String id, java.lang.Object host)
c
- class of listid
- unique id of list
public java.lang.String getListId(java.lang.Class c, java.lang.String id, java.lang.Object host, boolean raw)
protected void prepareListTable(java.lang.String tname, java.lang.Class o, java.lang.Class k, boolean uniqueKey)
tname
- desired table nameo
- class of entry objectk
- class of key objectuniqueKey
- protected void prepareTable(java.lang.Class c, java.lang.Object o)
c
- objects classo
- object to persistpublic void setDatabaseConnection(DatabaseConnection dbc)
dbc
- public DatabaseConnection getDatabaseConnection()
public boolean logonUser(User user, SalesPoint sp)
public void logoffUser(SalesPoint sp)
SalesPoint
and remove PersistenceManager.LogonInformation
record
sp
- public java.util.List<PersistenceManager.LogonInformation> getUserSessions(User user)
PersistenceManager.LogonInformation
for given user
user
- user
public java.util.List<PersistenceManager.LogonInformation> getUserSessions()
PersistenceManager.LogonInformation
public void registerShop(Shop shop)
shop
- shop to registerpublic void unregisterShop()
public boolean attachExternalModificationListener(java.lang.String tableid, ExternalModificationListener eml)
ExternalModificationListener
tableid
- table it is interested ineml
- the listener
public void dettachExternalModificationListener(java.lang.String tableid, ExternalModificationListener eml)
ExternalModificationListener
tableid
- table nameeml
- the listenerpublic void propertyChange(java.beans.PropertyChangeEvent evt)
propertyChange
in interface java.beans.PropertyChangeListener
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |