org.eclipse.viatra.transformation.evm.api.resolver

## Interface ChangeableConflictSet

- All Superinterfaces:
    ConflictSet
  All Known Implementing Classes:
    ArbitraryOrderConflictResolver.ArbitraryConflictSet, ComparingConflictResolver.ComparingConflictSet, FixedPriorityConflictSet, org.eclipse.viatra.transformation.evm.specific.resolver.impl.HashSetBasedConflictSetImpl, InvertedDisappearancePriorityConflictResolver.InvertedDisappearancePriorityConflictSet, LifoConflictResolver.LifoConflictSet

      public interface ChangeableConflictSet
      extends ConflictSet

  A conflict set is responsible for managing and ordering the set of enabled activations.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addActivation(Activation<?> activation)` This method is called by the Agenda when an activation changes state and becomes or is still enabled.
    `boolean` | `removeActivation(Activation<?> activation)` This method is called by the Agenda when an activation changes state and becomes or is still disabled.

    - ### Methods inherited from interface org.eclipse.viatra.transformation.evm.api.resolver.ConflictSet

      `getConflictingActivations, getConflictResolver, getNextActivation, getNextActivations`

- - ### Method Detail

    - #### addActivation

          boolean addActivation(Activation<?> activation)

      This method is called by the Agenda when an activation changes state and becomes or is still enabled.

      NOTE: The ChangeableConflictSet is responsible for handling that `add` may be called multiple times on an Activation already in the conflict set!
      Parameters:
        `activation` - the activation that should be added to the conflict set
      Returns:
        true, if the conflict set changed

    - #### removeActivation

          boolean removeActivation(Activation<?> activation)

      This method is called by the Agenda when an activation changes state and becomes or is still disabled.

      NOTE: The ChangeableConflictSet is responsible for handling that `remove` may be called on Activations that are not in the conflict set!
      Parameters:
        `activation` - the activation that should be removed from the conflict set
      Returns:
        true, if the conflict set changed