public class BasicCloud extends Object implements Cloud, Cloneable, Comparable<Cloud>, SizeMeasurable, Serializable
| Modifier and Type | Class and Description |
|---|---|
(package private) class |
BasicCloud.BasicCloudStarter |
| Modifier and Type | Field and Description |
|---|---|
protected String |
account |
protected long |
count |
protected String |
description |
(package private) Locale |
locale |
protected String |
name |
protected Map<String,BasicNodeManager> |
nodeManagerCache |
(package private) HashMap<Object,Object> |
properties |
protected Map<String,BasicTransaction> |
transactions |
protected UserContext |
userContext |
PROP_IGNOREVALIDATION, PROP_REQUEST, PROP_RESPONSE, PROP_SESSIONNAME, PROP_XMLMODE| Constructor and Description |
|---|
BasicCloud(String cloudName,
BasicCloud cloud)
basic constructor for descendant clouds (i.e.
|
BasicCloud(String name,
UserContext user,
BasicCloudContext cloudContext) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
_readObject(ObjectInputStream in) |
protected void |
_writeObject(ObjectOutputStream out) |
(package private) int |
add(BasicNode node)
Marks the given node as 'being edited'.
|
(package private) void |
add(String currentObjectContext)
Ignored by basic cloud.
|
protected void |
afterCommit(BasicNode n)
This method is called after a of a certain
node.
|
(package private) boolean |
check(Operation operation,
int nodeID)
Checks access rights.
|
(package private) boolean |
check(Operation operation,
int nodeID,
int srcNodeID,
int dstNodeID)
Checks access rights.
|
protected void |
checkAlias(String aliasName)
Throws exception if node alias already exists
|
(package private) List<MMObjectNode> |
checkNodes(List<MMObjectNode> in,
Query query) |
int |
compareTo(Cloud o)
Compares this cloud to the passed object.
|
(package private) boolean |
contains(MMObjectNode node)
Checks wether the current transaction contains the given node.
|
Query |
createAggregatedQuery() |
(package private) void |
createAlias(BasicNode node,
String aliasName) |
NodeList |
createNodeList()
Returns a new, empty node list for this cloud
|
NodeManagerList |
createNodeManagerList()
Returns a new, empty node manager list for this cloud
|
NodeQuery |
createNodeQuery()
Create an empty NodeQuery, which can be filled, and used in
NodeManager.getList(NodeQuery) or
Cloud.getList(Query) (but then no 'real' node are returned). |
Query |
createQuery()
Create an empty Query, which can be filled, and used in
Cloud.getList(Query). |
RelationList |
createRelationList()
Returns a new, empty relation list for this cloud
|
RelationManagerList |
createRelationManagerList()
Returns a new, empty relation manager list for this cloud
|
Transaction |
createTransaction()
Creates a transaction on this cloud.
|
Transaction |
createTransaction(String name)
Creates a transaction on this cloud with a specified name.
|
BasicTransaction |
createTransaction(String name,
boolean overwrite)
Creates a transaction on this cloud with a specified name.
|
(package private) void |
deleteNewNode(int temporaryNodeId,
MMObjectNode node) |
(package private) void |
deleteNode(int temporaryNodeId,
MMObjectNode node)
Ignored by basic cloud.
|
boolean |
equals(Object o)
Compares this cloud to the passed object, and returns true if they are equal.
|
(package private) String |
getAccount()
The owner to use for the temporary node manager.
|
(package private) BasicNodeManager |
getBasicNodeManager(MMObjectBuilder bul) |
(package private) BasicNodeManager |
getBasicNodeManager(String nodeManagerName) |
int |
getByteSize()
Determines the byte-size of this object
|
int |
getByteSize(SizeOf sizeof)
Determines the byte-size of this object using the given SizeOf instance.
|
CloudContext |
getCloudContext()
Returns the context to which this cloud belongs.
|
protected List<MMObjectNode> |
getClusterNodes(Query query)
Result with all Cluster - MMObjectNodes, with cache.
|
String |
getDescription()
This may return
Cloud.getName(), but in principable it could have been localized using the
value also returned by Cloud.getLocale(). |
Function<?> |
getFunction(String setName,
String functionName)
Returns a Function object from a function set.
|
Collection<Function<?>> |
getFunctions(String setName)
Returns all Function objects from a function set.
|
protected NodeList |
getLastStepList(Query query)
Based on multi-level query.
|
NodeList |
getList(Query query)
Executes a query and returns the result as a Cluster Node List (also if the query is a
NodeQuery). |
NodeList |
getList(String startNodes,
String nodePath,
String fields,
String constraints,
String orderby,
String directions,
String searchDir,
boolean distinct)
Returns a list of virtual nodes that are composed by fields of other
nodes.
|
Locale |
getLocale()
Gets the locale assocatied with this
Cloud instance. |
String |
getName()
Returns the name of this cloud.
|
Node |
getNode(int nodeNumber)
Returns the node with the specified number from this cloud.
|
Node |
getNode(String nodeNumber)
Returns the node with the specified number from this cloud.
|
Node |
getNodeByAlias(String aliasname)
Returns the node with the specified alias from this cloud.
|
NodeManager |
getNodeManager(int nodeManagerId)
Retrieves a node manager
|
NodeManager |
getNodeManager(String nodeManagerName)
Returns the specified node manager.
|
NodeManagerList |
getNodeManagers()
Returns all node managers available in this cloud.
|
Cloud |
getNonTransactionalCloud()
Returns a cloud which is not a Transaction.
|
StringList |
getPossibleContexts()
Contacts the security implementation to find out to which possible contexts are
available to the current user.
|
Map<Object,Object> |
getProperties()
Retrieves all properties previously set for this cloud.
|
Object |
getProperty(Object key)
Retrieves a property previously set for this cloud.
|
Relation |
getRelation(int nodeNumber)
Returns the relation with the specified number from this cloud.
|
Relation |
getRelation(String nodeNumber)
Returns the relation with the specified number from this cloud.
|
RelationManager |
getRelationManager(int number)
Returns the specified relation manager.
|
(package private) RelationManager |
getRelationManager(int sourceManagerId,
int destinationManagerId,
int roleId)
Retrieves a RelationManager.
|
RelationManager |
getRelationManager(NodeManager source,
NodeManager destination,
String roleName)
Returns the specified relation manager.
|
RelationManager |
getRelationManager(String roleName)
Returns the specified relation manager.
|
RelationManager |
getRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns the specified relation manager.
|
RelationManagerList |
getRelationManagers()
Returns all relation managers available in this cloud.
|
RelationManagerList |
getRelationManagers(NodeManager sourceManager,
NodeManager destinationManager,
String roleName)
Returns all relation managers available in this cloud that follow the specified filter.
|
RelationManagerList |
getRelationManagers(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns all relation managers available in this cloud that follow the specified filter.
|
protected NodeList |
getResultNodeList(Query query)
Aggregating query result.
|
protected NodeList |
getSecureList(Query query)
Result with Cluster Nodes (checked security)
|
Transaction |
getTransaction(String name)
Returnes the transaction with the specified name.
|
UserContext |
getUser()
Who is using this cloud.
|
boolean |
hasNode(int nodeNumber)
Determines whether a node with the specified number exists in this cloud.
|
boolean |
hasNode(String nodeNumber)
Determines whether a node with the specified number is available from this cloud.
|
boolean |
hasNodeManager(String nodeManagerName)
Returns whether the specified node manager exists.
|
boolean |
hasRelation(int nodeNumber)
Determines whether a relation with the specified number exists in this cloud.
|
boolean |
hasRelation(String nodeNumber)
Determines whether a relation with the specified number is available from this cloud.
|
boolean |
hasRelationManager(NodeManager source,
NodeManager destination,
String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRelationManager(String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRelationManager(String sourceManagerName,
String destinationManagerName,
String roleName)
Returns whether the specified relation manager exists.
|
boolean |
hasRole(String roleName)
Returns whether the specified role exists.
|
(package private) static boolean |
isTemporaryId(int id)
Test if a node id is a temporay id.
|
(package private) BasicNode |
makeNode(MMObjectNode node,
String nodeNumber) |
boolean |
may(Action action,
Parameters parameters)
Check whether an action is allowed
|
boolean |
mayRead(int nodeNumber)
Determines whether a node with the specified number is accessible for the user - that is,
the user has sufficient rights to read the node.
|
boolean |
mayRead(String nodeNumber)
Determines whether a node with the specified number is accessible for the user - that is,
the user has sufficient rights to read the node.
|
protected void |
processCommitProcessors(Node n)
Calls the commit processor for every field.
|
protected void |
processDeleteProcessors(Node n)
Calls the delete processor for every field.
|
(package private) void |
remove(MMObjectNode node)
Instructs core to reomve the Node
|
void |
setLocale(Locale l)
Sets a locale for this
Cloud instance. |
void |
setProperty(Object key,
Object value)
Sets a property for this cloud object.
|
(package private) boolean |
setSecurityConstraint(Constraint c) |
(package private) boolean |
setSecurityConstraint(Query query) |
protected void |
setValue(BasicNode node,
String fieldName,
Object value) |
void |
shutdown()
Shutdown MMBase, if you are allowed to do so.
|
protected BasicQuery |
toBasicQuery(Query query) |
String |
toString() |
(package private) static int |
uniqueId()
Create unique temporary node number.
|
(package private) void |
verify(Operation operation,
int nodeID)
Asserts access rights.
|
(package private) void |
verify(Operation operation,
int nodeID,
int srcNodeID,
int dstNodeID)
Asserts access rights.
|
protected String name
protected String account
protected String description
protected Map<String,BasicTransaction> transactions
protected Map<String,BasicNodeManager> nodeManagerCache
protected UserContext userContext
Locale locale
protected final long count
BasicCloud(String cloudName, BasicCloud cloud)
cloudName - name of cloudcloud - parent cloudBasicCloud(String name, UserContext user, BasicCloudContext cloudContext)
name - name of cloudauthenticationType - authentication typeloginInfo - Map with login credentialscloudContext - cloudContext of cloudNotFoundException - If MMBase not yet started, or shutting down.BridgeException - No security could be obtained.SecurityException - Could not perform loginpublic int getByteSize()
SizeMeasurablegetByteSize in interface SizeMeasurablepublic int getByteSize(SizeOf sizeof)
SizeMeasurablegetByteSize in interface SizeMeasurableBasicNode makeNode(MMObjectNode node, String nodeNumber)
public Node getNode(String nodeNumber) throws NotFoundException
CloudNode with a reference to this
instance of Cloud.getNode in interface CloudnodeNumber - a string containing the number or alias of the requested nodeNotFoundException - if the specified node could not be foundpublic final Node getNode(int nodeNumber) throws NotFoundException
CloudNode with a reference to this
instance of Cloud.getNode in interface CloudnodeNumber - the number of the requested nodeNotFoundException - if the specified node could not be foundpublic final Node getNodeByAlias(String aliasname) throws NotFoundException
CloudNode with a reference to this
instance of Cloud.getNodeByAlias in interface Cloudaliasname - the alias of the requested nodeNotFoundException - if the specified node could not be foundpublic final Relation getRelation(int nodeNumber) throws NotFoundException
CloudRelation with a reference to this
instance of Cloud.getRelation in interface CloudnodeNumber - the number of the requested nodeNotFoundException - if the specified node could not be foundpublic final Relation getRelation(String nodeNumber) throws NotFoundException
CloudRelation with a reference to this
instance of Cloud.getRelation in interface CloudnodeNumber - a string containing the number or alias of the requested nodeNotFoundException - if the specified node could not be foundpublic boolean hasNode(int nodeNumber)
CloudCloud.mayRead(int) to determine this.public boolean hasNode(String nodeNumber)
CloudCloud.mayRead(int) to determine this.public boolean hasRelation(int nodeNumber)
CloudCloud.mayRead(int) to determine this.hasRelation in interface CloudnodeNumber - the number of the nodepublic boolean hasRelation(String nodeNumber)
CloudCloud.mayRead(int) to determine this.hasRelation in interface CloudnodeNumber - a string containing the number or alias of the requested nodepublic NodeManagerList getNodeManagers()
CloudgetNodeManagers in interface CloudNodeManagerList containing all node managers
available in this cloud.BasicNodeManager getBasicNodeManager(MMObjectBuilder bul) throws NotFoundException
NotFoundExceptionBasicNodeManager getBasicNodeManager(String nodeManagerName) throws NotFoundException
NotFoundExceptionpublic final NodeManager getNodeManager(String nodeManagerName) throws NotFoundException
CloudgetNodeManager in interface CloudnodeManagerName - the name of the requested node managerNotFoundException - if the specified node manager could not be foundpublic boolean hasNodeManager(String nodeManagerName)
CloudhasNodeManager in interface CloudnodeManagerName - the name of the requested node managertrue if the specified node manager existspublic NodeManager getNodeManager(int nodeManagerId) throws NotFoundException
getNodeManager in interface CloudnodeManagerId - ID of the NodeManager to retrieveNodeManager if the manager exists, null otherwiseNotFoundException - node manager not foundRelationManager getRelationManager(int sourceManagerId, int destinationManagerId, int roleId)
sourceManagerId - number of the NodeManager of the source nodedestinationManagerId - number of the NodeManager of the destination noderoleId - number of the rolepublic RelationManager getRelationManager(int number) throws NotFoundException
CloudgetRelationManager in interface Cloudnumber - Unique ID of the RelationManager to retrieveNotFoundException - if the specified relation manager could not be foundpublic RelationManagerList getRelationManagers()
CloudgetRelationManagers in interface CloudRelationManagerList containing all relation
managers available in this cloudpublic RelationManager getRelationManager(String sourceManagerName, String destinationManagerName, String roleName) throws NotFoundException
CloudgetRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic RelationManager getRelationManager(NodeManager source, NodeManager destination, String roleName) throws NotFoundException
CloudgetRelationManager in interface Cloudsource - the node manager of the source nodedestination - the node manager of the destination noderoleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic boolean hasRelationManager(String sourceManagerName, String destinationManagerName, String roleName)
CloudhasRelationManager in interface CloudsourceManagerName - name of the node manager of the source nodedestinationManagerName - name of the node manager of the destination noderoleName - name of the roletrue if the specified relation manager could be foundpublic boolean hasRole(String roleName)
Cloudpublic boolean hasRelationManager(NodeManager source, NodeManager destination, String roleName)
CloudhasRelationManager in interface Cloudsource - name of the node manager of the source nodedestination - name of the node manager of the destination noderoleName - name of the roletrue if the specified relation manager could be foundpublic RelationManager getRelationManager(String roleName) throws NotFoundException
CloudgetRelationManager in interface CloudroleName - name of the roleNotFoundException - if the specified relation manager could not be foundpublic RelationManagerList getRelationManagers(String sourceManagerName, String destinationManagerName, String roleName) throws NotFoundException
CloudgetRelationManagers in interface CloudsourceManagerName - the name of the manager for the source of the relationdestinationManagerName - the name of the manager for the destination of the relationroleName - the rolenameRelationManagerList containing all relation
managers that follow this filterNotFoundException - if one of the specified relation managers or the rolename could not be foundpublic RelationManagerList getRelationManagers(NodeManager sourceManager, NodeManager destinationManager, String roleName) throws NotFoundException
CloudgetRelationManagers in interface CloudsourceManager - the manager for the source of the relationdestinationManager - the manager for the destination of the relationroleName - the rolenameRelationManagerList containing all relation
managers that follwo thsi filterNotFoundException - if one of the specified relation managers or the rolename could not be foundpublic boolean hasRelationManager(String roleName)
CloudhasRelationManager in interface CloudroleName - name of the roletrue if the specified relation manager existsstatic int uniqueId()
static boolean isTemporaryId(int id)
id - the id (node numebr) to testpublic Transaction createTransaction()
CloudTransaction will have a generic ID.createTransaction in interface CloudTransaction on this cloudpublic Transaction createTransaction(String name) throws AlreadyExistsException
CloudcreateTransaction in interface Cloudname - an unique name to use for the transactionTransaction on this cloudAlreadyExistsException - if a transaction with the specified name allready existspublic BasicTransaction createTransaction(String name, boolean overwrite) throws AlreadyExistsException
CloudcreateTransaction in interface Cloudname - an unique name to use for the transactionoverwrite - if true, cancels and replaces
any existing transaction of this name for the current userTransaction on this cloudAlreadyExistsException - if a transaction with the specified name allready
exists and overwrite is falsepublic Transaction getTransaction(String name)
CloudgetTransaction in interface Cloudname - the name of the requested transactionpublic CloudContext getCloudContext()
CloudgetCloudContext in interface CloudCloudContext to which this cloud belongspublic String getName()
CloudTransaction.public String getDescription()
CloudCloud.getName(), but in principable it could have been localized using the
value also returned by Cloud.getLocale().getDescription in interface Cloudpublic UserContext getUser()
CloudString getAccount()
boolean check(Operation operation, int nodeID)
operation - the operation to check (READ, WRITE, CREATE, OWN)nodeID - the node on which to check the operationtrue if access is granted, false otherwisevoid verify(Operation operation, int nodeID)
operation - the operation to check (READ, WRITE, CREATE, OWN)nodeID - the node on which to check the operationboolean check(Operation operation, int nodeID, int srcNodeID, int dstNodeID)
operation - the operation to check (CREATE, CHANGE_RELATION)nodeID - the node on which to check the operationsrcNodeID - the source node for this relationdstNodeID - the destination node for this relationtrue if access is granted, false otherwisevoid verify(Operation operation, int nodeID, int srcNodeID, int dstNodeID)
operation - the operation to check (CREATE, CHANGE_RELATION)nodeID - the node on which to check the operationsrcNodeID - the source node for this relationdstNodeID - the destination node for this relationpublic NodeList getList(Query query)
CloudNodeQuery).getList in interface Cloudquery - Query to executeSearchQueryprotected NodeList getResultNodeList(Query query)
query - query to executeprotected List<MMObjectNode> getClusterNodes(Query query)
query - query to executeboolean setSecurityConstraint(Constraint c)
protected BasicQuery toBasicQuery(Query query)
boolean setSecurityConstraint(Query query)
query - add security constaint to this querypublic StringList getPossibleContexts()
CloudgetPossibleContexts in interface CloudList<MMObjectNode> checkNodes(List<MMObjectNode> in, Query query)
protected NodeList getSecureList(Query query)
query - query to executepublic NodeList getList(String startNodes, String nodePath, String fields, String constraints, String orderby, String directions, String searchDir, boolean distinct)
Cloud- A node manager recordcompany containing a field name. - A node manager artist containing a field name. - A node manager url containing a field description and url. - A relation type related between recordcompany and artist. - A relation type related between artist and url. - A relation type homepagerel between artist and url.If node 100 has a node manager called recordcompany we can do the following to get a list of the record company's artists and all urls belonging to these artist (including nodes found through the related relation and the homepagerel relation):
getList("100", "recordcompany,artist,url",
"artist.name,description,url", null, null, null, null, true);
This call returns a list of virtual nodes with the fields artist.name,
description and url for every valid traversal.
If we only want to list homepage urls of the artists we do:
getList("100", "recordcompany,artist,url",
"artist.name,description,homepagerel,url", null, null, null,
null, true);
If we want to list all url's except the the homepage urls we do:
getList("100", "recordcompany,artist,url",
"artist.name,description,related,url", null, null, null, null, true);
If node 200 also has a node manager with name recordcompany we can get the info from their artist together with the info of the artist from the first company by also putting number 200 in the first parameter:
getList("100,200", "recordcompany,artist,url",
"artist.name,description,related,url", null, null, null, null, true);
For more information about the constraints parameter consult
NodeManager.getList(String constraints, String orderby, String
directions).getList in interface CloudstartNodes - A comma separated list of node numbers that should
be used as a starting point for all traversals
or null if all nodes of the first node
manager in nodePath should be used.nodePath - A comma separated list of node manager names
which specifies the path that should be followed.
It is possible to explicitly specify a relation
manager that should be used to go from one node to
an other. If no relation manager is specified
between two nodes, all possible relation managers
that can be used to go to the next specified node in
the path are followed.fields - A comma separated list of field names that will make
up the returned virtual
nodes. A fieldname can be prefixed with the
original node manager name of the field and a dot
in cases where more than one node manager in the
path has a field with the same name.constraints - Constraints to prevent nodes from being
included in the resulting list which would normally
by included or null if no constraints
should be applied.orderby - A comma separated list of field names on which the
returned list should be sorted or null
if the order of the returned virtual nodes doesn't
matter.directions - A comma separated list of values indicating wether
to sort up (ascending) or down (descending) on the
corresponding field in the orderby
parameter or null if sorting on all
fields should be up.
The value DOWN (case insensitive) indicates
that sorting on the corresponding field should be
down, all other values (including the
empty value) indicate that sorting on the
corresponding field should be up.
If the number of values found in this parameter are
less than the number of fields in the
orderby parameter, all fields that
don't have a corresponding direction value are
sorted according to the last specified direction
value.searchDir - Determines how directionality affects the search.
This is a string with the following possible values:"both", which is the default, searches for all
valid relations through a path, checking full directionality
of relations where appropriate.
"destination" searches for only those relations
in a path where valid relations exist from source to destination,
in the order of the nodemanagers given in the nodePath.
"source" searches for only those relations
in a path where valid relations exist from destination to source,
in the order of the nodemanagers given in the nodePath.
"all" searches all existing relations, and does
not check on directionality.
A value of null or any other values than those
listed above are ignored. In that case, search is
treated as if the default ("both") was specified.distinct - true if nodes who allready exist in
the list should not be added to the list.
false if all nodes should be added to
the list even if a node with exactly the same field
values is allready present.public void setLocale(Locale l)
CloudCloud instance.public Locale getLocale()
CloudCloud instance.public boolean mayRead(int nodeNumber)
Cloudpublic boolean mayRead(String nodeNumber)
Cloudpublic boolean may(Action action, Parameters parameters)
Cloudpublic Query createQuery()
CloudCloud.getList(Query).createQuery in interface Cloudpublic NodeQuery createNodeQuery()
CloudNodeManager.getList(NodeQuery) or
Cloud.getList(Query) (but then no 'real' node are returned). The query can be used on NodeManager only when at
least one step is added, and NodeQuery.setNodeStep(org.mmbase.storage.search.Step) is called.createNodeQuery in interface Cloudpublic Query createAggregatedQuery()
createAggregatedQuery in interface Cloudprotected NodeList getLastStepList(Query query)
query - query to executeBridgeException - If wrong fields in query or could not be added.public int compareTo(Cloud o)
compareTo in interface Comparable<Cloud>o - the object to compare it withpublic boolean equals(Object o)
public Object getProperty(Object key)
CloudTransaction), then this will also mirror properties in this
parent cloud.getProperty in interface Cloudkey - the key of the propertyCloud.setProperty(Object, Object)public void setProperty(Object key, Object value)
CloudsetProperty in interface Cloudkey - the key of the propertyvalue - the property valuepublic Map<Object,Object> getProperties()
CloudgetProperties in interface Cloudpublic Collection<Function<?>> getFunctions(String setName)
CloudFunction object.getFunctions in interface CloudsetName - name of the function setFunction objects.public Function<?> getFunction(String setName, String functionName)
CloudFunction object.getFunction in interface CloudsetName - name of the function setfunctionName - name of the functionFunction object.public NodeList createNodeList()
CloudcreateNodeList in interface Cloudpublic RelationList createRelationList()
CloudcreateRelationList in interface Cloudpublic NodeManagerList createNodeManagerList()
CloudcreateNodeManagerList in interface Cloudpublic RelationManagerList createRelationManagerList()
CloudcreateRelationManagerList in interface Cloudboolean contains(MMObjectNode node)
void add(String currentObjectContext)
BasicTransaction.add(String).int add(BasicNode node)
protected void checkAlias(String aliasName)
final void remove(MMObjectNode node)
void deleteNewNode(int temporaryNodeId,
MMObjectNode node)
void deleteNode(int temporaryNodeId,
MMObjectNode node)
BasicTransaction.delete(String).protected void _readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
IOExceptionClassNotFoundExceptionprotected void _writeObject(ObjectOutputStream out) throws IOException
IOExceptionpublic Cloud getNonTransactionalCloud()
CloudgetNonTransactionalCloud in interface CloudTransactionpublic void shutdown()
Cloudprotected void processDeleteProcessors(Node n)
protected void processCommitProcessors(Node n)
protected void afterCommit(BasicNode n)
Object.notifyAll().
This last thing makes it easy to wait for a node to really exist (finished committing)
synchronized(ntCloud) {
while (! ntCloud.hasNode(node)) {
ntCloud.wait();
}
}
Committing in a transaction goes a bit different, because the
actual committing only happens in the
, this method will be mostly empty
for BasicTransaction.MMBase 1.9-SNAPSHOT - ${javadoctimestamp}