Class MonitoredSQLStore<V extends Identifiable>
- java.lang.Object
-
- edu.uiuc.ncsa.security.storage.sql.SQLDatabase
-
- edu.uiuc.ncsa.security.storage.sql.SQLStore<V>
-
- edu.uiuc.ncsa.security.storage.monitored.MonitoredSQLStore<V>
-
- All Implemented Interfaces:
Store<V>
,MonitoredStoreInterface<V>
,Map<Identifier,V>
public abstract class MonitoredSQLStore<V extends Identifiable> extends SQLStore<V> implements MonitoredStoreInterface<V>
Created by Jeff Gaynor
on 3/29/23 at 10:24 AM
-
-
Field Summary
-
Fields inherited from class edu.uiuc.ncsa.security.storage.sql.SQLStore
converter, identifiableProvider
-
Fields inherited from interface edu.uiuc.ncsa.security.core.Store
VERSION_TAG
-
-
Constructor Summary
Constructors Constructor Description MonitoredSQLStore()
MonitoredSQLStore(ConnectionPool connectionPool, Table table, javax.inject.Provider<V> identifiableProvider, MapConverter<V> converter)
-
Method Summary
-
Methods inherited from class edu.uiuc.ncsa.security.storage.sql.SQLStore
checkColumns, checkTable, clear, containsKey, containsValue, crappySQLParser, crappySQLParser, create, depopulate, doRegisterStatement, entrySet, getAll, getCreationTSField, getDerbyMostRecent, getMapConverter, getMostRecentStatement, getTable, getXMLConverter, isEmpty, keySet, populate, put, putAll, register, remove, remove, save, search, search, search, setUpdateValues, size, size, size, toString, update, update, values
-
Methods inherited from class edu.uiuc.ncsa.security.storage.sql.SQLDatabase
destroyConnection, getConnection, getConnectionPool, releaseConnection, rsToMap, setConnectionPool
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Constructor Detail
-
MonitoredSQLStore
public MonitoredSQLStore(ConnectionPool connectionPool, Table table, javax.inject.Provider<V> identifiableProvider, MapConverter<V> converter)
-
MonitoredSQLStore
public MonitoredSQLStore()
-
-
Method Detail
-
getMostRecent
public List<V> getMostRecent(int n, List<String> attributes)
- Specified by:
getMostRecent
in interfaceStore<V extends Identifiable>
- Overrides:
getMostRecent
in classSQLStore<V extends Identifiable>
-
getLastAccessedEventListeners
public List<LastAccessedEventListener> getLastAccessedEventListeners()
- Specified by:
getLastAccessedEventListeners
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
getUuid
public UUID getUuid()
- Specified by:
getUuid
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
addLastAccessedEventListener
public void addLastAccessedEventListener(LastAccessedEventListener lastAccessedEventListener)
- Specified by:
addLastAccessedEventListener
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
fireLastAccessedEvent
public void fireLastAccessedEvent(MonitoredStoreInterface store, Identifier identifier)
- Specified by:
fireLastAccessedEvent
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
isMonitorEnabled
public boolean isMonitorEnabled()
Description copied from interface:MonitoredStoreInterface
Generally this is enabled, except in things like the CLI where you do not want to monitor access to clients or whatever.- Specified by:
isMonitorEnabled
in interfaceMonitoredStoreInterface<V extends Identifiable>
- Returns:
-
setMonitorEnabled
public void setMonitorEnabled(boolean x)
- Specified by:
setMonitorEnabled
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
lastAccessUpdate
public void lastAccessUpdate(IDMap idMap)
- Specified by:
lastAccessUpdate
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
get
public V get(Object o)
Description copied from class:SQLStore
Retrieve a single row from a table then populate an instance.
Note: If you need to jazz this up, it is probably better to override theSQLDatabase.rsToMap(java.sql.ResultSet)
method in this class. For instance, if the select statement is a join and there are multiple rows to process. The basic version of this class presupposed one row per object, but there is no reason this cannot be extended.- Specified by:
get
in interfaceMap<Identifier,V extends Identifiable>
- Overrides:
get
in classSQLStore<V extends Identifiable>
-
getKeys
protected MonitoredKeys getKeys()
-
doUpkeep
public UpkeepResponse doUpkeep(AbstractEnvironment environment)
Description copied from interface:MonitoredStoreInterface
Do the upkeep. Note that some stores may have to update other stores. The environment allows for this. E.g. Deleting a client should delete its approval record and remove any permissions associated with it.- Specified by:
doUpkeep
in interfaceMonitoredStoreInterface<V extends Identifiable>
- Returns:
-
doUpkeep
public UpkeepResponse doUpkeep(UpkeepConfiguration cfg, AbstractEnvironment environment)
- Specified by:
doUpkeep
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
gatherStats
protected UpkeepStats gatherStats(int[] records)
-
setUpkeepConfiguration
public void setUpkeepConfiguration(UpkeepConfiguration upkeepConfiguration)
- Specified by:
setUpkeepConfiguration
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
getUpkeepConfiguration
public UpkeepConfiguration getUpkeepConfiguration()
- Specified by:
getUpkeepConfiguration
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
updateHook
public long updateHook(String action, AbstractEnvironment environment, List<Identifier> identifiers)
- Specified by:
updateHook
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
hasUpkeepConfiguration
public boolean hasUpkeepConfiguration()
- Specified by:
hasUpkeepConfiguration
in interfaceMonitoredStoreInterface<V extends Identifiable>
-
-