public abstract class SnapshotJObjectContainer extends ReloadableJObjectContainer
JObjectContainer for use with key/value stores that implement
KVTransaction.mutableSnapshot().
This container is loaded by taking a key/value store snapshot and then iterating the desired backing objects
directly via iterateObjects(); no copying of objects is required.
Instances are (re)loaded at any time by invoking reload(). During reload, the container opens a JTransaction
and then creates a SnapshotJTransaction using the CloseableKVStore returned by
KVTransaction.mutableSnapshot().
This SnapshotJTransaction is set as the current transaction while iterateObjects()
returns the JObjects to be actually included in the container. The CloseableKVStore will
remain open until the container is reload()'ed or disconnect()'ed.
JObjectContainer.ObjFieldPropertyDef, JObjectContainer.ObjIdPropertyDef, JObjectContainer.ObjPropertyDef<T>, JObjectContainer.ObjTypePropertyDef, JObjectContainer.ObjVersionPropertyDef, JObjectContainer.RefLabelPropertyDefAbstractInMemoryContainer.BaseItemAddEvent, AbstractInMemoryContainer.BaseItemRemoveEventAbstractContainer.BaseItemSetChangeEvent, AbstractContainer.BasePropertySetChangeEventContainer.Editor, Container.Filter, Container.Filterable, Container.Hierarchical, Container.Indexed, Container.ItemSetChangeEvent, Container.ItemSetChangeListener, Container.ItemSetChangeNotifier, Container.Ordered, Container.PropertySetChangeEvent, Container.PropertySetChangeListener, Container.PropertySetChangeNotifier, Container.SimpleFilterable, Container.Sortable, Container.ViewerContainer.Indexed.ItemAddEvent, Container.Indexed.ItemRemoveEventjdb, log, OBJECT_ID_PROPERTY, REFERENCE_LABEL_PROPERTY, TYPE_PROPERTY, VERSION_PROPERTY| Modifier | Constructor and Description |
|---|---|
protected |
SnapshotJObjectContainer(JSimpleDB jdb,
Class<?> type)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
disconnect() |
protected abstract Iterator<? extends JObject> |
iterateObjects()
Iterate the database objects that will be used to fill this container.
|
void |
reload()
(Re)load this container.
|
connect, reloadAfterCommitdoInTransaction, getKeyFor, getOrderedPropertyNames, getPropertyValue, getType, load, load, setType, updateItemgenerateItemId, getItemIdFor, getItemIdForSame, getJavaObject, resetItemIdsaddContainerFilter, addContainerFilter, afterReload, createBackedItem, getContainerFilters, getContainerProperty, getContainerPropertyIds, getItemIds, getPropertyExtractor, getSortableContainerPropertyIds, getType, getUnfilteredItem, internalRemoveAllItems, removeAllContainerFilters, removeContainerFilter, removeContainerFilters, setProperties, setProperty, setPropertyExtractor, sortaddContainerProperty, addFilter, addItem, addItem, addItemAfter, addItemAfter, addItemAt, addItemAt, addItemSetChangeListener, addListener, containsId, doFilterContainer, doSort, filterAll, fireItemAdded, fireItemRemoved, fireItemsAdded, fireItemsRemoved, firstItemId, getAllItemIds, getFilteredItemIds, getFilters, getFirstVisibleItem, getIdByIndex, getItem, getItemIds, getItemSorter, getSortablePropertyIds, getVisibleItemIds, hasContainerFilters, indexOfId, internalAddItemAfter, internalAddItemAt, internalAddItemAtEnd, internalRemoveItem, isFiltered, isFirstId, isLastId, isPropertyFiltered, lastItemId, nextItemId, passesFilters, prevItemId, registerNewItem, removeAllFilters, removeAllItems, removeContainerProperty, removeFilter, removeFilters, removeItem, removeItemSetChangeListener, removeListener, setAllItemIds, setFilteredItemIds, setFilters, setItemSorter, size, sortContaineraddListener, addPropertySetChangeListener, fireContainerPropertySetChange, fireContainerPropertySetChange, fireItemSetChange, fireItemSetChange, getItemSetChangeListeners, getListeners, getPropertySetChangeListeners, removeListener, removePropertySetChangeListener, setItemSetChangeListeners, setPropertySetChangeListenersclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddItemAfter, addItemAfter, firstItemId, isFirstId, isLastId, lastItemId, nextItemId, prevItemIdaddContainerProperty, addItem, addItem, containsId, getItem, removeAllItems, removeContainerProperty, removeItem, sizeprotected SnapshotJObjectContainer(JSimpleDB jdb, Class<?> type)
jdb - JSimpleDB databasetype - type restriction, or null for no restrictionIllegalArgumentException - if jdb is nullpublic void disconnect()
disconnect in interface Connectabledisconnect in class ReloadableJObjectContainerpublic void reload()
This method opens a JTransaction, creates a SnapshotJTransaction using the CloseableKVStore
returned by KVTransaction.mutableSnapshot(), and loads
the container using the objects returned by iterateObjects().
reload in class ReloadableJObjectContainerprotected abstract Iterator<? extends JObject> iterateObjects()
A JTransaction will be open in the current thread when this method is invoked.
Copyright © 2016. All rights reserved.