public class ArgMergeOperator extends java.lang.Object implements MergeOperator
MergeOperator
and wraps the output with an ARG node.| Modifier and Type | Field and Description |
|---|---|
protected ArgAbstractStateFactory |
argAbstractStateFactory |
protected MergeOperator |
wrappedMergeOperator |
| Constructor and Description |
|---|
ArgMergeOperator(MergeOperator wrappedMergeOperator,
ArgAbstractStateFactory argAbstractStateFactory)
Create a wrapper merge operator.
|
| Modifier and Type | Method and Description |
|---|---|
ArgAbstractState |
merge(AbstractState abstractState1,
AbstractState abstractState2,
Precision precision)
The operator uses the
abstractState1 to weaken abstractState2 depending on precision. |
protected final MergeOperator wrappedMergeOperator
protected final ArgAbstractStateFactory argAbstractStateFactory
public ArgMergeOperator(MergeOperator wrappedMergeOperator, ArgAbstractStateFactory argAbstractStateFactory)
wrappedMergeOperator - a merge operator to be wrappedargAbstractStateFactory - an ARG node factorypublic ArgAbstractState merge(AbstractState abstractState1, AbstractState abstractState2, Precision precision)
MergeOperatorabstractState1 to weaken abstractState2 depending on precision.
Thus, it is asymmetric regarding its first two parameters. E.g., return abstractState2 for no merging.
To guarantee the correct behavior of the algorithm implementations must have no side effects.merge in interface MergeOperator