Package uk.gov.gchq.gaffer.operation
Class OperationChain<OUT>
- java.lang.Object
-
- uk.gov.gchq.gaffer.operation.OperationChain<OUT>
-
- Type Parameters:
OUT- the output type of theOperationChain. This should match the output type of the lastOperationin the chain.
- All Implemented Interfaces:
Closeable,AutoCloseable,Output<OUT>,Operation,Operations<Operation>
- Direct Known Subclasses:
OperationChainDAO
public class OperationChain<OUT> extends Object implements Output<OUT>, Operations<Operation>
An
A couple of special cases:OperationChainholds a list ofOperations that are chained together - ie. the output of one operation is passed to the input of the next. For the chaining to be successful the operations must be ordered correctly so the O and I types are compatible. The safest way to ensure they will be compatible is to use the OperationChain.Builder to construct the chain.- An operation with no output can come before any operation.
- An operation with no input can follow any operation - the output from the previous operation will just be lost.
- See Also:
OperationChain.Builder
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classOperationChain.BuilderABuilderis a type safe way of building anOperationChain.static classOperationChain.NoOutputBuilderstatic classOperationChain.OutputBuilder<OUT>-
Nested classes/interfaces inherited from interface uk.gov.gchq.gaffer.operation.Operation
Operation.BaseBuilder<OP extends Operation,B extends Operation.BaseBuilder<OP,?>>
-
-
Constructor Summary
Constructors Constructor Description OperationChain()OperationChain(List<Operation> operations)OperationChain(List<Operation> operations, boolean flatten)OperationChain(Output<OUT> operation)OperationChain(Operation operation)OperationChain(Operation... operations)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Operation implementations should ensure that all closeable fields are closed in this method.booleanequals(Object obj)List<Operation>getOperations()Should return aCollectionof all operations contained within theOperationsimplementation.Map<String,String>getOptions()com.fasterxml.jackson.core.type.TypeReference<OUT>getOutputTypeReference()inthashCode()voidsetOptions(Map<String,String> options)OperationChain<OUT>shallowClone()Operation implementations should ensure a ShallowClone method is implemented.StringtoOverviewString()StringtoString()static <O> OperationChain<O>wrap(Output<O> operation)static OperationChain<?>wrap(Operation operation)-
Methods inherited from interface uk.gov.gchq.gaffer.operation.Operation
_getNullOrOptions, addOption, containsOption, getOption, getOption, validate, validateRequiredFieldPresent
-
Methods inherited from interface uk.gov.gchq.gaffer.operation.Operations
flatten, getOperationsClass, updateOperations
-
Methods inherited from interface uk.gov.gchq.gaffer.operation.io.Output
castToOutputType, getOutputClass, getOutputType
-
-
-
-
Method Detail
-
wrap
public static OperationChain<?> wrap(Operation operation)
-
wrap
public static <O> OperationChain<O> wrap(Output<O> operation)
-
getOutputTypeReference
public com.fasterxml.jackson.core.type.TypeReference<OUT> getOutputTypeReference()
- Specified by:
getOutputTypeReferencein interfaceOutput<OUT>
-
getOperations
public List<Operation> getOperations()
Description copied from interface:OperationsShould return aCollectionof all operations contained within theOperationsimplementation. The collection of operations may be modified by Gaffer.- Specified by:
getOperationsin interfaceOperations<OUT>- Returns:
- A
CollectionofOperations.
-
shallowClone
public OperationChain<OUT> shallowClone() throws org.apache.commons.lang3.exception.CloneFailedException
Description copied from interface:OperationOperation implementations should ensure a ShallowClone method is implemented. Performs a shallow clone. Creates a new instance and copies the fields across. It does not clone the fields. If the operation contains nested operations, these must also be cloned.- Specified by:
shallowClonein interfaceOperation- Returns:
- shallow clone
- Throws:
org.apache.commons.lang3.exception.CloneFailedException- if a Clone error occurs
-
getOptions
public Map<String,String> getOptions()
- Specified by:
getOptionsin interfaceOperation- Returns:
- the operation options. This may contain store specific options such as authorisation strings or and other properties required for the operation to be executed. Note these options will probably not be interpreted in the same way by every store implementation.
-
setOptions
public void setOptions(Map<String,String> options)
- Specified by:
setOptionsin interfaceOperation- Parameters:
options- the operation options. This may contain store specific options such as authorisation strings or and other properties required for the operation to be executed. Note these options will probably not be interpreted in the same way by every store implementation.
-
toOverviewString
public String toOverviewString()
-
close
public void close() throws IOExceptionDescription copied from interface:OperationOperation implementations should ensure that all closeable fields are closed in this method.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceOperation- Throws:
IOException- if an I/O error occurs
-
-