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, removeByID, save, search, search, search, search, setUpdateValues, size, size, size, toString, update, 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:
getMostRecentin interfaceStore<V extends Identifiable>- Overrides:
getMostRecentin classSQLStore<V extends Identifiable>
-
getLastAccessedEventListeners
public List<LastAccessedEventListener> getLastAccessedEventListeners()
- Specified by:
getLastAccessedEventListenersin interfaceMonitoredStoreInterface<V extends Identifiable>
-
getUuid
public UUID getUuid()
- Specified by:
getUuidin interfaceMonitoredStoreInterface<V extends Identifiable>
-
addLastAccessedEventListener
public void addLastAccessedEventListener(LastAccessedEventListener lastAccessedEventListener)
- Specified by:
addLastAccessedEventListenerin interfaceMonitoredStoreInterface<V extends Identifiable>
-
fireLastAccessedEvent
public void fireLastAccessedEvent(MonitoredStoreInterface store, Identifier identifier)
- Specified by:
fireLastAccessedEventin interfaceMonitoredStoreInterface<V extends Identifiable>
-
isMonitorEnabled
public boolean isMonitorEnabled()
Description copied from interface:MonitoredStoreInterfaceGenerally this is enabled, except in things like the CLI where you do not want to monitor access to clients or whatever.- Specified by:
isMonitorEnabledin interfaceMonitoredStoreInterface<V extends Identifiable>- Returns:
-
setMonitorEnabled
public void setMonitorEnabled(boolean x)
- Specified by:
setMonitorEnabledin interfaceMonitoredStoreInterface<V extends Identifiable>
-
lastAccessUpdate
public void lastAccessUpdate(IDMap idMap)
- Specified by:
lastAccessUpdatein interfaceMonitoredStoreInterface<V extends Identifiable>
-
get
public V get(Object o)
Description copied from class:SQLStoreRetrieve 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:
getin interfaceMap<Identifier,V extends Identifiable>- Overrides:
getin classSQLStore<V extends Identifiable>
-
getKeys
protected MonitoredKeys getKeys()
-
doUpkeep
public UpkeepResponse doUpkeep(AbstractEnvironment environment)
Description copied from interface:MonitoredStoreInterfaceDo 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:
doUpkeepin interfaceMonitoredStoreInterface<V extends Identifiable>- Returns:
-
doUpkeep
public UpkeepResponse doUpkeep(UpkeepConfiguration cfg, AbstractEnvironment environment)
- Specified by:
doUpkeepin interfaceMonitoredStoreInterface<V extends Identifiable>
-
gatherStats
protected UpkeepStats gatherStats(int[] records)
-
setUpkeepConfiguration
public void setUpkeepConfiguration(UpkeepConfiguration upkeepConfiguration)
- Specified by:
setUpkeepConfigurationin interfaceMonitoredStoreInterface<V extends Identifiable>
-
getUpkeepConfiguration
public UpkeepConfiguration getUpkeepConfiguration()
- Specified by:
getUpkeepConfigurationin interfaceMonitoredStoreInterface<V extends Identifiable>
-
updateHook
public long updateHook(String action, AbstractEnvironment environment, List<Identifier> identifiers)
- Specified by:
updateHookin interfaceMonitoredStoreInterface<V extends Identifiable>
-
hasUpkeepConfiguration
public boolean hasUpkeepConfiguration()
- Specified by:
hasUpkeepConfigurationin interfaceMonitoredStoreInterface<V extends Identifiable>
-
-