|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.modeshape.repository.sequencer.StreamSequencerAdapter
public class StreamSequencerAdapter
An adapter class that wraps a StreamSequencer
instance to be a Sequencer
.
Nested Class Summary | |
---|---|
protected class |
StreamSequencerAdapter.NextSnsPathStrategy
|
protected class |
StreamSequencerAdapter.PassThroughStrategy
|
protected static interface |
StreamSequencerAdapter.PathStrategy
|
Field Summary | |
---|---|
static boolean |
DEFAULT_ADD_DEFAULT_MIXIN
|
Constructor Summary | |
---|---|
StreamSequencerAdapter(StreamSequencer streamSequencer)
|
|
StreamSequencerAdapter(StreamSequencer streamSequencer,
boolean addDerivedMixin)
|
Method Summary | |
---|---|
protected Collection<Property> |
addDerivedProperties(Collection<Property> properties,
SequencerContext context,
Path derivedPath)
|
protected StreamSequencerContext |
createStreamSequencerContext(Node input,
Property sequencedProperty,
SequencerContext context,
Problems problems)
|
protected Path |
derivedFromPath(Path inputPath)
Compute the path that will be used in the "mode:derivedFrom" property on the "mode:derived" node(s) output by the sequencing operation. |
void |
execute(Node input,
String sequencedPropertyName,
NetChangeObserver.NetChange changes,
Set<RepositoryNodePath> outputPaths,
SequencerContext context,
Problems problems)
Execute the sequencing operation on the supplied node, which has recently been created or changed. |
protected String[] |
extractMixinTypes(Object value)
|
SequencerConfig |
getConfiguration()
Return the configuration for this component, as supplied to the last Component.setConfiguration(ComponentConfig) invocation. |
protected String |
getMimeType(SequencerContext context,
Property sequencedProperty,
String name)
|
protected void |
saveOutput(Path inputPath,
String outputPath,
SequencerOutputMap output,
SequencerContext context,
Set<Path> builtPaths,
boolean replacePreviouslyDerivedContent)
Save the sequencing output to the supplied node. |
void |
setConfiguration(SequencerConfig configuration)
This method allows the implementation to initialize and configure itself using the supplied ComponentConfig
information, and is called prior to any other class to this object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final boolean DEFAULT_ADD_DEFAULT_MIXIN
Constructor Detail |
---|
public StreamSequencerAdapter(StreamSequencer streamSequencer)
public StreamSequencerAdapter(StreamSequencer streamSequencer, boolean addDerivedMixin)
Method Detail |
---|
public SequencerConfig getConfiguration()
Component.setConfiguration(ComponentConfig)
invocation.
getConfiguration
in interface Component<SequencerConfig>
public void setConfiguration(SequencerConfig configuration)
ComponentConfig
information, and is called prior to any other class to this object. When this method is called, the implementation must
maintain a reference to the supplied configuration (which should then be returned in Component.getConfiguration()
.
setConfiguration
in interface Component<SequencerConfig>
configuration
- the configuration for the componentpublic void execute(Node input, String sequencedPropertyName, NetChangeObserver.NetChange changes, Set<RepositoryNodePath> outputPaths, SequencerContext context, Problems problems) throws SequencerException
saving
any changes made by
this sequencer, and closing any other acquired resources, even in the case of exceptions.
The SequencingService
determines the sequencers that should be executed by monitoring the changes to one or more
workspaces (it registers an Observer
with the RepositoryLibrary
). Changes in those workspaces are
aggregated for each transaction, and organized into changes for each node
. The SequencingService then
determines for each set of changes to a node
the set of full paths to the properties that have changed
and whether those paths match
the sequencer's
path expressions
. Each path expression produces the path to the output node,
and these output paths are accumulated and (with the original node that changed, the node change summary, and other
information) supplied to the sequencer via this method.
It is possible that a sequencer is configured to apply to multiple properties on a node. So, in cases where multiple properties are changed on a single node (within a single repository transaction), the sequencer will only be executed once. Also, in such cases the sequencer's configuration may imply multiple output nodes, so it is left to the sequencer to define the behavior in such cases.
execute
in interface Sequencer
input
- the node that has recently been created or changed; never nullsequencedPropertyName
- the name of the property that caused this sequencer to be executed; never null and never emptychanges
- the immutable summary of changes that occurred on the input
node within the transaction; never
nulloutputPaths
- the paths to the nodes where the sequencing content should be placed; never null and never empty, but
the set may contain paths for non-existent nodes or may reference the input
nodecontext
- the context in which this sequencer is executing; never nullproblems
- the interface used for recording problems; never null
SequencerException
- if there is an error in this sequencerprotected void saveOutput(Path inputPath, String outputPath, SequencerOutputMap output, SequencerContext context, Set<Path> builtPaths, boolean replacePreviouslyDerivedContent)
inputPath
- the existing node that was sequenced; never nulloutputPath
- the existing node onto (or below) which the output is to be written; never nulloutput
- the (immutable) sequencing output; never nullcontext
- the execution context for this sequencing operation; never nullbuiltPaths
- a set of the paths that have already been created but not submitted in this batchreplacePreviouslyDerivedContent
- true if any existing content that was previously derived from the same input path
should first be removed before saving the output, or false otherwiseprotected Collection<Property> addDerivedProperties(Collection<Property> properties, SequencerContext context, Path derivedPath)
protected Path derivedFromPath(Path inputPath)
inputPath
- the path of the node being sequenced; may not be null
protected String[] extractMixinTypes(Object value)
protected StreamSequencerContext createStreamSequencerContext(Node input, Property sequencedProperty, SequencerContext context, Problems problems)
protected String getMimeType(SequencerContext context, Property sequencedProperty, String name)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |