public class FileBasedObjectStore extends java.lang.Object implements PersistenceObjectStore
PersistenceObjectStore.StoreObjectAccessor, PersistenceObjectStore.StoreObjectAccessorWithLock| Constructor and Description | 
|---|
| FileBasedObjectStore(java.io.File basedir) | 
| Modifier and Type | Method and Description | 
|---|---|
| void | close()Closes all resources used by this ObjectStore. | 
| void | createSubPath(java.lang.String subPath)create the directory at the given subPath relative to the base of this store | 
| void | deleteCompletely()Entirely delete the contents of this persistence location. | 
| static void | deleteCompletely(java.io.File d) | 
| java.io.File | getBaseDir() | 
| java.lang.String | getSummaryName()human-readable name of this object store | 
| void | injectManagementContext(ManagementContext mgmt)Allows a way for an object store to be created ahead of time, and a mgmt context injected. | 
| java.util.List<java.lang.String> | listContentsWithSubPath(java.lang.String parentSubPath)Lists the paths of objects contained at the given path, including the subpath. | 
| PersistenceObjectStore.StoreObjectAccessor | newAccessor(java.lang.String path)For reading/writing data to the item at the given path. | 
| void | prepareForMasterUse()Prepares the persistence store for "contentious writes". | 
| void | prepareForSharedUse(PersistMode persistMode,
                   HighAvailabilityMode haMode)Prepares the persistence store for read use and non-contentious write use,
 in particular detecting whether we should clean or register a need for backup etc. | 
| java.lang.String | toString() | 
public FileBasedObjectStore(java.io.File basedir)
basedir - public java.lang.String getSummaryName()
PersistenceObjectStoregetSummaryName in interface PersistenceObjectStorepublic java.io.File getBaseDir()
public void prepareForMasterUse()
PersistenceObjectStore
 Caller must call PersistenceObjectStore.prepareForSharedUse(PersistMode, HighAvailabilityMode) first
 (and PersistenceObjectStore.injectManagementContext(ManagementContext) before that).
 
This is typically invoked "at the last moment" e.g. before the any such write, mainly in order to prevent backups being made unnecessarily (e.g. if a node is standby, or if it tries to become master but is not capable), but also to prevent simultaneous backups which can cause problems with some stores (only a mgmt who knows he is the master should invoke this).
prepareForMasterUse in interface PersistenceObjectStorepublic void createSubPath(java.lang.String subPath)
PersistenceObjectStorecreateSubPath in interface PersistenceObjectStorepublic PersistenceObjectStore.StoreObjectAccessor newAccessor(java.lang.String path)
PersistenceObjectStore
 Clients should wrap in a dedicated StoreObjectAccessorLocking and share
 if multiple threads may be accessing the store.
 This method may be changed in future to allow access to a shared locking accessor.
newAccessor in interface PersistenceObjectStorepublic java.util.List<java.lang.String> listContentsWithSubPath(java.lang.String parentSubPath)
PersistenceObjectStorePersistenceObjectStore.newAccessor(String).listContentsWithSubPath in interface PersistenceObjectStorepublic void close()
PersistenceObjectStoreclose in interface PersistenceObjectStorepublic java.lang.String toString()
toString in class java.lang.Objectpublic void injectManagementContext(ManagementContext mgmt)
PersistenceObjectStore
 A ManagementContext must be supplied via constructor or this method before invoking other methods.
injectManagementContext in interface PersistenceObjectStorepublic void prepareForSharedUse(@Nullable
                       PersistMode persistMode,
                       HighAvailabilityMode haMode)
PersistenceObjectStorePersistenceObjectStore.injectManagementContext(ManagementContext),
 but before PersistenceObjectStore.prepareForMasterUse().
 
 See PersistenceObjectStore.prepareForMasterUse() for discussion of "contentious writes".
prepareForSharedUse in interface PersistenceObjectStorepublic void deleteCompletely()
PersistenceObjectStoredeleteCompletely in interface PersistenceObjectStorepublic static void deleteCompletely(java.io.File d)