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 lastOperation
in 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:OperationChain
holds a list ofOperation
s 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 class
OperationChain.Builder
ABuilder
is a type safe way of building anOperationChain
.static class
OperationChain.NoOutputBuilder
static class
OperationChain.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 void
close()
Operation implementations should ensure that all closeable fields are closed in this method.boolean
equals(Object obj)
List<Operation>
getOperations()
Should return aCollection
of all operations contained within theOperations
implementation.Map<String,String>
getOptions()
com.fasterxml.jackson.core.type.TypeReference<OUT>
getOutputTypeReference()
int
hashCode()
void
setOptions(Map<String,String> options)
OperationChain<OUT>
shallowClone()
Operation implementations should ensure a ShallowClone method is implemented.String
toOverviewString()
String
toString()
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:
getOutputTypeReference
in interfaceOutput<OUT>
-
getOperations
public List<Operation> getOperations()
Description copied from interface:Operations
Should return aCollection
of all operations contained within theOperations
implementation. The collection of operations may be modified by Gaffer.- Specified by:
getOperations
in interfaceOperations<OUT>
- Returns:
- A
Collection
ofOperation
s.
-
shallowClone
public OperationChain<OUT> shallowClone() throws org.apache.commons.lang3.exception.CloneFailedException
Description copied from interface:Operation
Operation 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:
shallowClone
in interfaceOperation
- Returns:
- shallow clone
- Throws:
org.apache.commons.lang3.exception.CloneFailedException
- if a Clone error occurs
-
getOptions
public Map<String,String> getOptions()
- Specified by:
getOptions
in 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:
setOptions
in 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 IOException
Description copied from interface:Operation
Operation implementations should ensure that all closeable fields are closed in this method.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceOperation
- Throws:
IOException
- if an I/O error occurs
-
-