|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponent
net.shibboleth.metadata.pipeline.BaseStage<ItemType>
net.shibboleth.metadata.pipeline.SplitMergeStage<ItemType>
ItemType - type of items upon which this stage operates@ThreadSafe public class SplitMergeStage<ItemType extends Item<?>>
A stage which splits a given collection and passes selected items to one pipeline and non-selected items to another.
The selected and non-selected item pipelines are executed via the set ExecutorService and operate on
collections that contains clones of the (non-)selected items.
This stage requires the following properties be set prior to initialization:
selectionStrategyselectedItemPipeline or nonselectedItemPipeline
If no executorService is provided, one will be created using Executors.newFixedThreadPool(int) with
6 threads.
If no collectionFactory is given, then SimpleItemCollectionFactory is used.
If one or the other pipeline is null then no objects will be passed to it (obviously).
| Field Summary | |
|---|---|
private com.google.common.base.Supplier<Collection<ItemType>> |
collectionFactory
Factory used to create the Item collection that is then given to the pipelines. |
private ExecutorService |
executorService
Service used to execute the selected and/or non-selected item pipelines. |
private Logger |
log
Class logger. |
private CollectionMergeStrategy |
mergeStrategy
Strategy used to merge all the joined pipeline results in to the final Item collection. |
private Pipeline<ItemType> |
nonselectedItemPipeline
Pipeline that receives the non-selected items. |
private Pipeline<ItemType> |
selectedItemPipeline
Pipeline that receives the selected items. |
private com.google.common.base.Predicate<ItemType> |
selectionStrategy
Strategy used to split the given item collection. |
| Constructor Summary | |
|---|---|
SplitMergeStage()
|
|
| Method Summary | |
|---|---|
protected void |
doDestroy()
|
protected void |
doExecute(Collection<ItemType> itemCollection)
Performs the stage processing on the given Item collection. |
protected void |
doInitialize()
|
protected Future<Collection<? extends Item>> |
executePipeline(Pipeline<ItemType> pipeline,
Collection<ItemType> items)
Executes a pipeline. |
com.google.common.base.Supplier<Collection<ItemType>> |
getCollectionFactory()
Gets the factory used to create the Item collection that is then given to the pipelines. |
CollectionMergeStrategy |
getCollectionMergeStrategy()
Gets the strategy used to merge all the joined pipeline results in to the final Item collection. |
ExecutorService |
getExecutorService()
Gets the executor service used to run the selected and non-selected item pipelines. |
Pipeline<ItemType> |
getNonselectedItemPipeline()
Gets the pipeline that receives the non-selected items. |
Pipeline<ItemType> |
getSelectedItemPipeline()
Gets the pipeline that receives the selected items. |
com.google.common.base.Predicate<ItemType> |
getSelectionStrategy()
Gets the strategy used to split the given item collection. |
void |
setCollectionFactory(com.google.common.base.Supplier<Collection<ItemType>> factory)
Sets the factory used to create the Item collection that is then given to the pipelines. |
void |
setCollectionMergeStrategy(CollectionMergeStrategy strategy)
Sets the strategy used to merge all the joined pipeline results in to the final Item collection. |
void |
setExecutorService(ExecutorService service)
Sets the executor service used to run the selected and non-selected item pipelines. |
void |
setNonselectedItemPipeline(Pipeline<ItemType> pipeline)
Sets the pipeline that receives the non-selected items. |
void |
setSelectedItemPipeline(Pipeline<ItemType> pipeline)
Sets the pipeline that receives the selected items. |
void |
setSelectionStrategy(com.google.common.base.Predicate<ItemType> strategy)
Sets the strategy used to split the given item collection. |
| Methods inherited from class net.shibboleth.metadata.pipeline.BaseStage |
|---|
execute, setId |
| Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponent |
|---|
getId |
| Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent |
|---|
destroy, initialize, isDestroyed, isInitialized |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent |
|---|
destroy, isDestroyed |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.IdentifiableComponent |
|---|
getId |
| Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent |
|---|
initialize, isInitialized |
| Field Detail |
|---|
private final Logger log
private ExecutorService executorService
private com.google.common.base.Supplier<Collection<ItemType extends Item<?>>> collectionFactory
private com.google.common.base.Predicate<ItemType extends Item<?>> selectionStrategy
private Pipeline<ItemType extends Item<?>> selectedItemPipeline
private Pipeline<ItemType extends Item<?>> nonselectedItemPipeline
private CollectionMergeStrategy mergeStrategy
| Constructor Detail |
|---|
public SplitMergeStage()
| Method Detail |
|---|
@Nonnull public ExecutorService getExecutorService()
public void setExecutorService(@Nonnull
ExecutorService service)
service - executor service used to run the selected and non-selected item pipelines@Nonnull public com.google.common.base.Supplier<Collection<ItemType>> getCollectionFactory()
public void setCollectionFactory(@Nonnull
com.google.common.base.Supplier<Collection<ItemType>> factory)
factory - factory used to create the Item collection that is then given to the pipelines@Nonnull public com.google.common.base.Predicate<ItemType> getSelectionStrategy()
public void setSelectionStrategy(@Nonnull
com.google.common.base.Predicate<ItemType> strategy)
strategy - strategy used to split the given item collection, never null@Nullable public Pipeline<ItemType> getSelectedItemPipeline()
public void setSelectedItemPipeline(@Nullable
Pipeline<ItemType> pipeline)
pipeline - pipeline that receives the selected items@Nullable public Pipeline<ItemType> getNonselectedItemPipeline()
public void setNonselectedItemPipeline(@Nullable
Pipeline<ItemType> pipeline)
pipeline - pipeline that receives the non-selected items@Nonnull public CollectionMergeStrategy getCollectionMergeStrategy()
public void setCollectionMergeStrategy(@Nonnull
CollectionMergeStrategy strategy)
strategy - strategy used to merge all the joined pipeline results in to the final Item collection, never
null
protected void doExecute(@Nonnull@NonnullElements
Collection<ItemType> itemCollection)
throws StageProcessingException
The stage is guaranteed to be have been initialized and not destroyed when this is invoked.
doExecute in class BaseStage<ItemType extends Item<?>>itemCollection - collection to be processed
StageProcessingException - thrown if there is an unrecoverable problem when processing the stage
@Nonnull
protected Future<Collection<? extends Item>> executePipeline(Pipeline<ItemType> pipeline,
Collection<ItemType> items)
pipeline - the pipeline, may be nullitems - the collections of items
protected void doDestroy()
doDestroy in class net.shibboleth.utilities.java.support.component.AbstractDestructableInitializableComponent
protected void doInitialize()
throws net.shibboleth.utilities.java.support.component.ComponentInitializationException
doInitialize in class net.shibboleth.utilities.java.support.component.AbstractDestructableIdentifiableInitializableComponentnet.shibboleth.utilities.java.support.component.ComponentInitializationException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||