public class SerializableBatch extends Object implements Batch, Serializable
SerializableBatch
implements a serializable SPI Batch, which
simply records all calls and replays them when asked for. The client of
this batch must ensure that the passed QValue
instances are
serializable, otherwise the serializing the Batch
will fail!Modifier and Type | Class and Description |
---|---|
static interface |
SerializableBatch.Operation |
Constructor and Description |
---|
SerializableBatch(ItemId itemId)
Creates a new
SerializableBatch . |
Modifier and Type | Method and Description |
---|---|
void |
addNode(NodeId parentId,
Name nodeName,
Name nodetypeName,
String uuid)
Add a new node to the persistent layer.
|
void |
addProperty(NodeId parentId,
Name propertyName,
QValue value)
Add a new property to the persistent layer.
|
void |
addProperty(NodeId parentId,
Name propertyName,
QValue[] values)
Add a new multi-valued property to the persistent layer.
|
ItemId |
getSaveTarget() |
void |
move(NodeId srcNodeId,
NodeId destParentNodeId,
Name destName)
Move the node identified by the given
srcNodeId to the
new parent identified by destParentNodeId and change its
name to destName . |
void |
remove(ItemId itemId)
Remove an existing item.
|
void |
reorderNodes(NodeId parentId,
NodeId srcNodeId,
NodeId beforeNodeId)
Modify the order of the child nodes identified by the given
NodeId s. |
void |
replay(Batch batch)
Replays this batch on the given
batch . |
void |
setMixins(NodeId nodeId,
Name[] mixinNodeTypeIds)
Modify the set of mixin node types present on the node identified by the
given id.
|
void |
setPrimaryType(NodeId nodeId,
Name primaryNodeTypeName)
Change the primary type of the node identified by the given
nodeId . |
void |
setTree(NodeId parentId,
Tree contentTree)
Add a new content tree to the persistent layer.
|
void |
setValue(PropertyId propertyId,
QValue value)
Modify the value of an existing property.
|
void |
setValue(PropertyId propertyId,
QValue[] values)
Modify the value of an existing, multi-valued property.
|
public SerializableBatch(ItemId itemId)
SerializableBatch
.itemId
- the id of the item where save was called. To indicate that
save was called on the session, the id of the root node
must be passed.public ItemId getSaveTarget()
public void replay(Batch batch) throws PathNotFoundException, ItemNotFoundException, NoSuchNodeTypeException, ValueFormatException, VersionException, LockException, ConstraintViolationException, AccessDeniedException, UnsupportedRepositoryOperationException, RepositoryException
batch
. For a description of
the exception see RepositoryService.submit(Batch)
.public void addNode(NodeId parentId, Name nodeName, Name nodetypeName, String uuid)
Batch
addNode
in interface Batch
parentId
- NodeId identifying the parent node.nodeName
- Name of the node to be created.nodetypeName
- Primary node type name of the node to be created.uuid
- Value for the jcr:uuid property of the node to be created or
null
. If due to an import the uuid of the resulting node is
already defined, it must be passed as separate uuid parameter, indicating
a binding value for the server. Otherwise the uuid must be null
.Node.addNode(String)
,
Node.addNode(String, String)
,
Session.importXML(String, java.io.InputStream, int)
,
Query.storeAsNode(String)
public void addProperty(NodeId parentId, Name propertyName, QValue value)
Batch
Note: this call should succeed in case the property already exists.
addProperty
in interface Batch
parentId
- NodeId identifying the parent node.propertyName
- Name of the property to be created.value
- The value of the property to be created.Node.setProperty(String, javax.jcr.Value)
,
Node.setProperty(String, javax.jcr.Value, int)
,
Node.setProperty(String, String)
,
Node.setProperty(String, String, int)
,
Node.setProperty(String, java.util.Calendar)
,
Node.setProperty(String, boolean)
,
Node.setProperty(String, double)
,
Node.setProperty(String, long)
,
Node.setProperty(String, javax.jcr.Node)
,
Session.importXML(String, java.io.InputStream, int)
,
Query.storeAsNode(String)
public void addProperty(NodeId parentId, Name propertyName, QValue[] values)
Batch
Note: this call should succeed in case the property already exists.
addProperty
in interface Batch
parentId
- NodeId identifying the parent node.propertyName
- Name of the property to be created.values
- The values of the property to be created.Node.setProperty(String, javax.jcr.Value[])
,
Node.setProperty(String, javax.jcr.Value[], int)
,
Node.setProperty(String, String[])
,
Node.setProperty(String, String[], int)
,
Session.importXML(String, java.io.InputStream, int)
public void setValue(PropertyId propertyId, QValue value)
Batch
null
value.
Removing a property is achieved by calling Batch.remove(ItemId)
.setValue
in interface Batch
propertyId
- PropertyId identifying the property to be modified.value
- The new value.Property.setValue(javax.jcr.Value)
,
Property.setValue(String)
,
Property.setValue(long)
,
Property.setValue(double)
,
Property.setValue(java.util.Calendar)
,
Property.setValue(boolean)
,
Property.setValue(javax.jcr.Node)
public void setValue(PropertyId propertyId, QValue[] values)
Batch
null
value. Removing a property is achieved by calling Batch.remove(ItemId)
.setValue
in interface Batch
propertyId
- PropertyId identifying the property to be modified.values
- The new values.Property.setValue(javax.jcr.Value[])
,
Property.setValue(String[])
public void remove(ItemId itemId)
Batch
remove
in interface Batch
itemId
- ItemId identifying the item to be removed.Item.remove()
public void reorderNodes(NodeId parentId, NodeId srcNodeId, NodeId beforeNodeId)
Batch
NodeId
s.reorderNodes
in interface Batch
parentId
- NodeId identifying the parent node.srcNodeId
- NodeId identifying the node to be reordered.beforeNodeId
- NodeId identifying the child node, before which the
source node must be placed.Node.orderBefore(String, String)
public void setMixins(NodeId nodeId, Name[] mixinNodeTypeIds)
Batch
setMixins
in interface Batch
nodeId
- NodeId identifying the node to be modified.mixinNodeTypeIds
- The new set of mixin types. Compared to the
previous values this may result in both adding and/or removing mixin types.Node.addMixin(String)
,
Node.removeMixin(String)
public void setPrimaryType(NodeId nodeId, Name primaryNodeTypeName) throws RepositoryException
Batch
nodeId
.setPrimaryType
in interface Batch
nodeId
- NodeId identifying the node to be modified.RepositoryException
Node.setPrimaryType(String)
public void move(NodeId srcNodeId, NodeId destParentNodeId, Name destName)
Batch
srcNodeId
to the
new parent identified by destParentNodeId
and change its
name to destName
.move
in interface Batch
srcNodeId
- NodeId identifying the node to be moved.destParentNodeId
- NodeId identifying the new parent.destName
- The new name of the moved node.Session.move(String, String)
public void setTree(NodeId parentId, Tree contentTree) throws RepositoryException
Batch
setTree
in interface Batch
RepositoryException
Copyright © 2004–2021 The Apache Software Foundation. All rights reserved.