org.jboss.dna.connector.federation.executor
Class FederatingCommandExecutor

java.lang.Object
  extended by org.jboss.dna.graph.requests.processor.RequestProcessor
      extended by org.jboss.dna.connector.federation.executor.FederatingCommandExecutor

@NotThreadSafe
public class FederatingCommandExecutor
extends RequestProcessor

Author:
Randall Hauch

Constructor Summary
FederatingCommandExecutor(ExecutionContext context, String sourceName, List<Projection> sourceProjections, RepositoryConnectionFactory connectionFactory)
          Create a command executor that federates (merges) the information from multiple sources described by the source projections.
FederatingCommandExecutor(ExecutionContext context, String sourceName, Projection cacheProjection, CachePolicy defaultCachePolicy, List<Projection> sourceProjections, RepositoryConnectionFactory connectionFactory)
          Create a command executor that federates (merges) the information from multiple sources described by the source projections.
 
Method Summary
 void close()
          Close this processor, allowing it to clean up any open resources.
 Projection getCacheProjection()
          Get the projection defining the cache.
 List<Projection> getSourceProjections()
          Get an unmodifiable list of the immutable source projections.
 void process(CopyBranchRequest request)
          Process a request to copy a branch into another location.
 void process(CreateNodeRequest request)
          Process a request to create a node at a specified location.
 void process(DeleteBranchRequest request)
          Process a request to delete a branch at a specified location.
 void process(MoveBranchRequest request)
          Process a request to move a branch at a specified location into a different location.
 void process(ReadAllChildrenRequest request)
          Process a request to read all of the children of a node.
 void process(ReadAllPropertiesRequest request)
          Process a request to read the properties of a node at the supplied location.
 void process(ReadNodeRequest request)
          Process a request to read the properties and children of a node at the supplied location.
 void process(UpdatePropertiesRequest request)
          Process a request to remove the specified properties from a node.
 void setMergingStrategy(MergeStrategy mergingStrategy)
           
 
Methods inherited from class org.jboss.dna.graph.requests.processor.RequestProcessor
getExecutionContext, getSourceName, process, process, process, process, process, process, process, process
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FederatingCommandExecutor

public FederatingCommandExecutor(ExecutionContext context,
                                 String sourceName,
                                 List<Projection> sourceProjections,
                                 RepositoryConnectionFactory connectionFactory)
Create a command executor that federates (merges) the information from multiple sources described by the source projections. The resulting command executor does not first consult a cache for the merged information; if a cache is desired, see constructor that takes a cache projection.

Parameters:
context - the execution context in which the executor will be run; may not be null
sourceName - the name of the RepositorySource that is making use of this executor; may not be null or empty
sourceProjections - the source projections; may not be null
connectionFactory - the factory for RepositoryConnection instances

FederatingCommandExecutor

public FederatingCommandExecutor(ExecutionContext context,
                                 String sourceName,
                                 Projection cacheProjection,
                                 CachePolicy defaultCachePolicy,
                                 List<Projection> sourceProjections,
                                 RepositoryConnectionFactory connectionFactory)
Create a command executor that federates (merges) the information from multiple sources described by the source projections. The resulting command executor will use the supplied cache projection to identify the repository source for the cache as well as the rules for how the paths are mapped in the cache. This cache will be consulted first for the requested information, and will be kept up to date as changes are made to the federated information.

Parameters:
context - the execution context in which the executor will be run; may not be null
sourceName - the name of the RepositorySource that is making use of this executor; may not be null or empty
cacheProjection - the projection used for the cached information; may be null if there is no cache
defaultCachePolicy - the default caching policy that outlines the length of time that information should be cached, or null if there is no cache or no specific cache policy
sourceProjections - the source projections; may not be null
connectionFactory - the factory for RepositoryConnection instances
Method Detail

setMergingStrategy

public void setMergingStrategy(MergeStrategy mergingStrategy)
Parameters:
mergingStrategy - Sets mergingStrategy to the specified value.

getSourceProjections

public List<Projection> getSourceProjections()
Get an unmodifiable list of the immutable source projections.

Returns:
the set of projections used as sources; never null

getCacheProjection

public Projection getCacheProjection()
Get the projection defining the cache.

Returns:
the cache projection

close

public void close()
Close this processor, allowing it to clean up any open resources.

Overrides:
close in class RequestProcessor
See Also:
RequestProcessor.close()

process

public void process(ReadAllChildrenRequest request)
Process a request to read all of the children of a node.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the read request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.ReadAllChildrenRequest)

process

public void process(ReadAllPropertiesRequest request)
Process a request to read the properties of a node at the supplied location.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the read request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.ReadAllPropertiesRequest)

process

public void process(ReadNodeRequest request)
Process a request to read the properties and children of a node at the supplied location.

This method does nothing if the request is null. Unless overridden, this method converts the single request into a ReadAllChildrenRequest and a ReadAllPropertiesRequest.

Overrides:
process in class RequestProcessor
Parameters:
request - the read request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.ReadNodeRequest)

process

public void process(CopyBranchRequest request)
Process a request to copy a branch into another location.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the copy request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.CopyBranchRequest)

process

public void process(CreateNodeRequest request)
Process a request to create a node at a specified location.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the create request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.CreateNodeRequest)

process

public void process(DeleteBranchRequest request)
Process a request to delete a branch at a specified location.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the delete request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.DeleteBranchRequest)

process

public void process(MoveBranchRequest request)
Process a request to move a branch at a specified location into a different location.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the move request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.MoveBranchRequest)

process

public void process(UpdatePropertiesRequest request)
Process a request to remove the specified properties from a node.

This method does nothing if the request is null.

Specified by:
process in class RequestProcessor
Parameters:
request - the remove request
See Also:
RequestProcessor.process(org.jboss.dna.graph.requests.UpdatePropertiesRequest)


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