|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager
public abstract class AbstractBundlePersistenceManager
The AbstractBundlePersistenceManager acts as base for all
persistence managers that store the state in a NodePropBundle.
BundleCache that caches already loaded bundles. The other is the
LRUNodeIdCache that caches non-existent bundles. This is usefull
because a lot of exists(NodeId) calls are issued that would result
in a useless SQL execution if the desired bundle does not exist.
Configuration:bundleCacheSize" value="8"/>
| Field Summary | |
|---|---|
protected PMContext |
context
the persistence manager context |
protected static String |
NODEFILENAME
the prefix of a node file |
protected static String |
NODEREFSFILENAME
the prefix of a node references file |
protected static String |
RES_NAME_INDEX
the name of the names-index resource |
protected static String |
RES_NS_INDEX
the name of the namespace-index resource |
| Constructor Summary | |
|---|---|
AbstractBundlePersistenceManager()
|
|
| Method Summary | |
|---|---|
protected StringBuffer |
buildBlobFilePath(StringBuffer buf,
PropertyId id,
int i)
Creates the file path for the given property id and value index that is suitable for storing property values in a filesystem. |
protected StringBuffer |
buildNodeFilePath(StringBuffer buf,
NodeId id)
Creates the file path for the given node id that is suitable for storing node states in a filesystem. |
protected StringBuffer |
buildNodeFolderPath(StringBuffer buf,
NodeId id)
Creates the folder path for the given node id that is suitable for storing states in a filesystem. |
protected StringBuffer |
buildNodeReferencesFilePath(StringBuffer buf,
NodeReferencesId id)
Creates the file path for the given references id that is suitable for storing reference states in a filesystem. |
protected StringBuffer |
buildPropFilePath(StringBuffer buf,
PropertyId id)
Creates the folder path for the given property id that is suitable for storing states in a filesystem. |
NodeState |
createNew(NodeId id)
Creates a new node state instance with the given id. |
PropertyState |
createNew(PropertyId id)
Creates a new property state instance with the given id. |
protected abstract void |
destroy(NodeReferences refs)
Deletes the node references from the undelying system. |
protected abstract void |
destroyBundle(NodePropBundle bundle)
Deletes the bundle from the underlying system. |
boolean |
exists(NodeId id)
Checks whether the identified node exists. Checks the existance via the appropriate NodePropBundle. |
boolean |
exists(PropertyId id)
Checks whether the identified property exists. Loads the state via the appropriate NodePropBundle. |
protected abstract boolean |
existsBundle(NodeId id)
Checks if a bundle exists in the underlying system. |
String |
getBundleCacheSize()
Returns the size of the bundlecache in megabytes. |
StringIndex |
getNameIndex()
Returns the local name index |
StringIndex |
getNsIndex()
Returns the namespace index |
void |
init(PMContext context)
Initializes the persistence manager. Initializes the internal structures of this abstract persistence manager. |
NodeState |
load(NodeId id)
Load the persistent members of a node state. Loads the state via the appropriate NodePropBundle. |
abstract NodeReferences |
load(NodeReferencesId targetId)
Load the persistent members of a node references object. |
PropertyState |
load(PropertyId id)
Load the persistent members of a property state. Loads the state via the appropriate NodePropBundle. |
protected abstract NodePropBundle |
loadBundle(NodeId id)
Loads a bundle from the underlying system. |
void |
onExternalUpdate(ChangeLog changes)
Notifies the persistence manager that an external (cluster) modification occured. |
void |
setBundleCacheSize(String bundleCacheSize)
Sets the size of the bundle cache in megabytes. |
void |
store(ChangeLog changeLog)
Right now, this iterates over all items in the changelog and calls the individual methods that handle single item states or node references objects. |
protected abstract void |
store(NodeReferences refs)
Stores a node references to the underlying system. |
protected abstract void |
storeBundle(NodePropBundle bundle)
Stores a bundle to the underlying system. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.apache.jackrabbit.core.persistence.PersistenceManager |
|---|
close, exists |
| Field Detail |
|---|
protected static final String NODEFILENAME
protected static final String NODEREFSFILENAME
protected static final String RES_NAME_INDEX
protected static final String RES_NS_INDEX
protected PMContext context
| Constructor Detail |
|---|
public AbstractBundlePersistenceManager()
| Method Detail |
|---|
public String getBundleCacheSize()
public void setBundleCacheSize(String bundleCacheSize)
bundleCacheSize - the bundle cache size in megabytes.
protected StringBuffer buildNodeFolderPath(StringBuffer buf,
NodeId id)
buf - buffer to append to or nullid - the id of the node
protected StringBuffer buildPropFilePath(StringBuffer buf,
PropertyId id)
buf - buffer to append to or nullid - the id of the property
protected StringBuffer buildBlobFilePath(StringBuffer buf,
PropertyId id,
int i)
buf - buffer to append to or nullid - the id of the propertyi - the index of the property value
protected StringBuffer buildNodeFilePath(StringBuffer buf,
NodeId id)
buf - buffer to append to or nullid - the id of the node
protected StringBuffer buildNodeReferencesFilePath(StringBuffer buf,
NodeReferencesId id)
buf - buffer to append to or nullid - the id of the node
public StringIndex getNsIndex()
IllegalStateException - if an error occurs.public StringIndex getNameIndex()
IllegalStateException - if an error occurs.public void onExternalUpdate(ChangeLog changes)
onExternalUpdate in interface CachingPersistenceManagerchanges - the set of changes of the external modification.
protected abstract NodePropBundle loadBundle(NodeId id)
throws ItemStateException
id - the node id of the bundle
null if the bundle does not
exist.
ItemStateException - if an error while loading occurs.
protected abstract boolean existsBundle(NodeId id)
throws ItemStateException
id - the node id of the bundle
true if the bundle exists;
false otherwise.
ItemStateException - if an error while checking occurs.
protected abstract void storeBundle(NodePropBundle bundle)
throws ItemStateException
bundle - the bundle to store
ItemStateException - if an error while storing occurs.
protected abstract void destroyBundle(NodePropBundle bundle)
throws ItemStateException
bundle - the bundle to destroy
ItemStateException - if an error while destroying occurs.
public abstract NodeReferences load(NodeReferencesId targetId)
throws NoSuchItemStateException,
ItemStateException
load in interface PersistenceManagertargetId - reference target node id
NoSuchItemStateException - if the target node does not exist
ItemStateException - if another error occurs
protected abstract void destroy(NodeReferences refs)
throws ItemStateException
refs - the node references to destroy.
ItemStateException - if an error while destroying occurs.
protected abstract void store(NodeReferences refs)
throws ItemStateException
refs - the node references to store.
ItemStateException - if an error while storing occurs.
public void init(PMContext context)
throws Exception
An appropriate exception is thrown if the persistence manager initialization fails for whatever reason. In this case the state of the persistence manager is undefined and the instance should be discarded. Initializes the internal structures of this abstract persistence manager.
init in interface PersistenceManagercontext - persistence manager context
Exception - if the persistence manager intialization failed
public NodeState load(NodeId id)
throws NoSuchItemStateException,
ItemStateException
load in interface PersistenceManagerid - node id
NoSuchItemStateException - if the node state does not exist
ItemStateException - if another error occurs
public PropertyState load(PropertyId id)
throws NoSuchItemStateException,
ItemStateException
load in interface PersistenceManagerid - property id
NoSuchItemStateException - if the property state does not exist
ItemStateException - if another error occurs
public boolean exists(PropertyId id)
throws ItemStateException
exists in interface PersistenceManagerid - property id
true if the property exists,
false otherwise
ItemStateException - on persistence manager errors
public boolean exists(NodeId id)
throws ItemStateException
exists in interface PersistenceManagerid - node id
true if the node exists,
false otherwise
ItemStateException - on persistence manager errorspublic NodeState createNew(NodeId id)
createNew in interface PersistenceManagerid - node id
public PropertyState createNew(PropertyId id)
createNew in interface PersistenceManagerid - property id
public void store(ChangeLog changeLog)
throws ItemStateException
store in interface PersistenceManagerchangeLog - change log containing states that were changed
ItemStateException - if the changes could not be saved
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||