org.jboss.dna.graph.requests
Class ReadNextBlockOfChildrenRequest

java.lang.Object
  extended by org.jboss.dna.graph.requests.Request
      extended by org.jboss.dna.graph.requests.CacheableRequest
          extended by org.jboss.dna.graph.requests.ReadNextBlockOfChildrenRequest
All Implemented Interfaces:
Serializable, Cacheable

public class ReadNextBlockOfChildrenRequest
extends CacheableRequest

Instruction to read a block of the children of a node, where the block is dictated by the location of the child preceding the block and the maximum number of children to include in the block. This command is useful when paging through a large number of children.

Author:
Randall Hauch
See Also:
ReadBlockOfChildrenRequest, Serialized Form

Field Summary
static int INDEX_NOT_USED
           
 
Constructor Summary
ReadNextBlockOfChildrenRequest(Location of, Location startingAfter, int count)
          Create a request to read a block of the children of a node at the supplied location.
 
Method Summary
 void addChild(Location child)
          Add to the list of children that has been read the child with the given path and identification properties.
 void addChild(Path pathToChild, Property idProperty)
          Add to the list of children that has been read the child with the given path and identification property.
 void addChild(Path pathToChild, Property firstIdProperty, Property... remainingIdProperties)
          Add to the list of children that has been read the child with the given path and identification properties.
 int count()
          Get the maximum number of children that may be returned in the block.
 boolean equals(Object obj)
          
 Location getActualLocationOfNode()
          Get the actual location of the node whose children were read.
 List<Location> getChildren()
          Get the children that were read from the RepositoryConnection after the request was processed.
 boolean isReadOnly()
          Return whether this request only reads information.
 Location of()
          Get the location defining the node whose children are to be read.
 void setActualLocationOfNode(Location actual)
          Sets the actual and complete location of the node whose children have been read.
 Location startingAfter()
          Get the location of the child after which the block begins.
 String toString()
          
 
Methods inherited from class org.jboss.dna.graph.requests.CacheableRequest
getCachePolicy, getTimeLoaded, setCachePolicy, setTimeLoaded
 
Methods inherited from class org.jboss.dna.graph.requests.Request
cancel, getError, hasError, isCancelled, setError
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INDEX_NOT_USED

public static final int INDEX_NOT_USED
See Also:
Constant Field Values
Constructor Detail

ReadNextBlockOfChildrenRequest

public ReadNextBlockOfChildrenRequest(Location of,
                                      Location startingAfter,
                                      int count)
Create a request to read a block of the children of a node at the supplied location. The block is defined by the starting index of the first child and the number of children to include. Note that this index is not the same-name-sibiling index, but rather is the index of the child as if the children were in an array.

Parameters:
of - the location of the node whose children are to be read
startingAfter - the child that was the last child of the previous block of children read
count - the maximum number of children that should be included in the block
Throws:
IllegalArgumentException - if the location is null, if startingAfter is null, or if count is less than 1.
Method Detail

isReadOnly

public boolean isReadOnly()
Return whether this request only reads information.

Specified by:
isReadOnly in class Request
Returns:
true if this request reads information, or false if it requests that the repository content be changed in some way
See Also:
Request.isReadOnly()

of

public Location of()
Get the location defining the node whose children are to be read.

Returns:
the location of the parent node; never null

count

public int count()
Get the maximum number of children that may be returned in the block.

Returns:
the block's maximum count
See Also:
startingAfter()

startingAfter

public Location startingAfter()
Get the location of the child after which the block begins. This form may be easier to use when paging through blocks, as the last children retrieved with the previous block can be supplied with the next read request.

Returns:
the location of the child that is immediately before the start of the block; index at which this block starts; never negative
See Also:
count()

getChildren

public List<Location> getChildren()
Get the children that were read from the RepositoryConnection after the request was processed. Each child is represented by a location.

Returns:
the children that were read; never null

addChild

public void addChild(Location child)
Add to the list of children that has been read the child with the given path and identification properties. The children should be added in order.

Parameters:
child - the location of the child that was read
Throws:
IllegalArgumentException - if the location is null
See Also:
addChild(Path, Property), addChild(Path, Property, Property...)

addChild

public void addChild(Path pathToChild,
                     Property firstIdProperty,
                     Property... remainingIdProperties)
Add to the list of children that has been read the child with the given path and identification properties. The children should be added in order.

Parameters:
pathToChild - the path of the child that was just read
firstIdProperty - the first identification property of the child that was just read
remainingIdProperties - the remaining identification properties of the child that was just read
Throws:
IllegalArgumentException - if the path or identification properties are null
See Also:
addChild(Location), addChild(Path, Property)

addChild

public void addChild(Path pathToChild,
                     Property idProperty)
Add to the list of children that has been read the child with the given path and identification property. The children should be added in order.

Parameters:
pathToChild - the path of the child that was just read
idProperty - the identification property of the child that was just read
Throws:
IllegalArgumentException - if the path or identification properties are null
See Also:
addChild(Location), addChild(Path, Property, Property...)

setActualLocationOfNode

public void setActualLocationOfNode(Location actual)
Sets the actual and complete location of the node whose children have been read. This method must be called when processing the request, and the actual location must have a path.

Parameters:
actual - the actual location of the node being read, or null if the current location should be used
Throws:
IllegalArgumentException - if the actual location does not represent the same location as the current location, or if the actual location does not have a path.

getActualLocationOfNode

public Location getActualLocationOfNode()
Get the actual location of the node whose children were read.

Returns:
the actual location, or null if the actual location was not set

equals

public boolean equals(Object obj)

Overrides:
equals in class Object
See Also:
Object.equals(java.lang.Object)

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()


Copyright © 2008-Present JBoss a division of Red Hat. All Rights Reserved.