O - operation base class for MutationI - immutable data type (extends Mutation)H - AbstractImmutableHolder implementation classpublic abstract class AbstractImmutableHolder<O extends Serializable,I extends Mutation<O,I>,H extends AbstractImmutableHolder<O,I,H>> extends Object implements Serializable
| Modifier and Type | Field and Description |
|---|---|
protected H |
redoStep |
protected H |
undoStep |
protected I |
value |
| Modifier | Constructor and Description |
|---|---|
|
AbstractImmutableHolder()
Create emtpy holder.
|
protected |
AbstractImmutableHolder(H source,
H newRedoStep)
Create new holder functioning as undo step of a mutated holder state.
|
protected |
AbstractImmutableHolder(H before,
O operation)
Create new holder state by performing an operation on a previous holder
state.
|
protected |
AbstractImmutableHolder(Supplier<I> supplier)
Create holder containing the data from a
Supplier. |
| Modifier and Type | Method and Description |
|---|---|
protected abstract H |
castSelf()
Cast self (to implementor class <H>).
|
protected abstract I |
createEmpty()
Supplier for an empty value
|
protected I |
getValue() |
boolean |
hasRedoStep()
Check if project has step to redo.
|
boolean |
hasUndoStep()
Check if project has step to undo.
|
abstract H |
operate(O operation)
Perform operation (cast to implementor class).
|
H |
redo()
Return redo step for this.
|
H |
undo()
Return undo step for this.
|
protected abstract H |
unwrap(H newRedoStep)
Call the constructor
AbstractImmutableHolder(AbstractImmutableHolder, AbstractImmutableHolder)
implementation (of the implementor class <H>). |
protected final H extends AbstractImmutableHolder<O,I,H> undoStep
protected final H extends AbstractImmutableHolder<O,I,H> redoStep
public AbstractImmutableHolder()
protected AbstractImmutableHolder(Supplier<I> supplier)
Supplier.supplier - supplier for the immutable dataprotected AbstractImmutableHolder(H before, O operation)
before - previous holder stateoperation - operation to performprotected AbstractImmutableHolder(H source, H newRedoStep)
source - the original holder object for this statenewRedoStep - the step that should be the new redo step of the created
objectprotected I getValue()
public boolean hasUndoStep()
public boolean hasRedoStep()
public H undo()
public H redo()
protected abstract I createEmpty()
protected abstract H castSelf()
protected abstract H unwrap(H newRedoStep)
AbstractImmutableHolder(AbstractImmutableHolder, AbstractImmutableHolder)
implementation (of the implementor class <H>).newRedoStep - holder state which should be the updated redo step of the
unwrapped holder stateCopyright © 2015 illucIT Software GmbH. All rights reserved.