Package com.aoindustries.aoserv.client
Class GlobalTable<K,V extends GlobalObject<K,V>>
- java.lang.Object
-
- com.aoindustries.aoserv.client.AOServTable<K,V>
-
- com.aoindustries.aoserv.client.GlobalTable<K,V>
-
- Direct Known Subclasses:
BackupRetentionTable,GlobalTableDomainNameKey,GlobalTableIntegerKey,GlobalTablePosixPathKey,GlobalTableStringKey
public abstract class GlobalTable<K,V extends GlobalObject<K,V>> extends AOServTable<K,V>
AGlobalTableis shared between all users. The data is cached so that subsequent lookups need not access the server.- Author:
- AO Industries, Inc.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.aoindustries.aoserv.client.AOServTable
AOServTable.OrderBy
-
-
Field Summary
-
Fields inherited from class com.aoindustries.aoserv.client.AOServTable
ASCENDING, connector, DESCENDING
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedGlobalTable(AOServConnector connector, Class<V> clazz)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearCache()Clears the cache, freeing up memory.intgetGlobalRowCount()Gets the number of accessible rows in the table or-1if the table is not yet loaded.List<V>getIndexedRows(int col, Object value)Gets the rows in a more efficient, indexed manner.List<V>getRows()Gets the list of all accessible rows.List<V>getRowsCopy()Gets a modifiable copy of the rows, which may then be manipulated, such as for sorting.protected VgetUniqueRowImpl(int col, Object value)Gets a row given a unique column value.booleanisLoaded()Checks if the table is loaded.-
Methods inherited from class com.aoindustries.aoserv.client.AOServTable
addProgressListener, addTableListener, addTableListener, addTableLoadListener, get, getCachedRowCount, getConnector, getDefaultOrderBy, getDefaultOrderBySQLExpressions, getIndexedRows, getMap, getNewObject, getObject, getObjects, getObjects, getObjects, getObjectsNoProgress, getObjectsNoProgress, getSize, getSortAlgorithm, getTableID, getTableName, getTableSchema, getUniqueRow, getUniqueRow, getUniqueRow, getUniqueRow, handleCommand, hasAnyTableListener, hasTableListener, isEmpty, iterator, printTable, removeProgressListener, removeTableListener, removeTableLoadListener, size, sortIfNeeded, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
GlobalTable
protected GlobalTable(AOServConnector connector, Class<V> clazz)
-
-
Method Detail
-
getGlobalRowCount
public final int getGlobalRowCount()
Gets the number of accessible rows in the table or-1if the table is not yet loaded.
-
getIndexedRows
public final List<V> getIndexedRows(int col, Object value) throws IOException, SQLException
Description copied from class:AOServTableGets the rows in a more efficient, indexed manner.Implementation Note:
This default implementation simply throws UnsupportedOperationException.- Overrides:
getIndexedRowsin classAOServTable<K,V extends GlobalObject<K,V>>- Throws:
IOExceptionSQLException
-
getUniqueRowImpl
protected final V getUniqueRowImpl(int col, Object value) throws SQLException, IOException
Description copied from class:AOServTableGets a row given a unique column value.- Specified by:
getUniqueRowImplin classAOServTable<K,V extends GlobalObject<K,V>>- Parameters:
col- the column index to searchvalue- whennull, no row is matched, even if there is a single row with a uniquelynullvalue- Throws:
SQLExceptionIOException
-
getRows
public List<V> getRows() throws IOException, SQLException
Description copied from class:AOServTableGets the list of all accessible rows.- Specified by:
getRowsin interfaceTable<K>- Overrides:
getRowsin classAOServTable<K,V extends GlobalObject<K,V>>- Returns:
- a
Listcontaining all of the rows - Throws:
IOException- if unable to access the serverSQLException- if unable to access the database- See Also:
AOServTable.getRowsCopy()
-
getRowsCopy
public List<V> getRowsCopy() throws IOException, SQLException
Description copied from class:AOServTableGets a modifiable copy of the rows, which may then be manipulated, such as for sorting.This gives the table implementation a way to create a defensive copy most efficient to its underlying storage mechanism.
Note: It is best to use
AOServTable.getSortAlgorithm()when sorting rows, as the choice of sorting can be very important when objects are pulled from non-heap source like filesystem-based objects. It is very easy for the sort itself to end up pulling all objects into heap.- Specified by:
getRowsCopyin classAOServTable<K,V extends GlobalObject<K,V>>- Throws:
IOExceptionSQLException- See Also:
AOServTable.getRows(),AOServTable.getSortAlgorithm()
-
isLoaded
public final boolean isLoaded()
Description copied from class:AOServTableChecks if the table is loaded. A table is considered loaded when accessing any part of it will be done entirely locally, avoiding any network traffic.- Overrides:
isLoadedin classAOServTable<K,V extends GlobalObject<K,V>>
-
clearCache
public void clearCache()
Description copied from class:AOServTableClears the cache, freeing up memory. The data will be reloaded upon next use.- Overrides:
clearCachein classAOServTable<K,V extends GlobalObject<K,V>>
-
-