org.eclipse.viatra.transformation.evm.specific.resolver

## Class FixedPriorityConflictSet

- java.lang.Object
- - org.eclipse.viatra.transformation.evm.specific.resolver.FixedPriorityConflictSet

- All Implemented Interfaces:
    ChangeableConflictSet, ConflictSet
  Direct Known Subclasses:
    InvertedDisappearancePriorityConflictResolver.InvertedDisappearancePriorityConflictSet

      public class FixedPriorityConflictSet
      extends java.lang.Object
      implements ChangeableConflictSet

  This conflict set resolves conflicts between activations based on Integer valued priorities assigned to rules. The activations of rules with the lowest priority value will be the next activations. See `FixedPriorityConflictResolver` for more details.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FixedPriorityConflictSet(FixedPriorityConflictResolver resolver, java.util.Map<RuleSpecification<?>,java.lang.Integer> priorities)`
    `FixedPriorityConflictSet(FixedPriorityConflictResolver resolver, java.util.Map<RuleSpecification<?>,java.lang.Integer> priorities, int defaultPriority)`

  - ### Method Summary

    All Methods Instance Methods Concrete 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.
    `protected boolean` | `addActivation(Activation<?> activation, java.lang.Integer priority)`
    `java.util.Set<Activation<?>>` | `getConflictingActivations()` Returns all conflicting activations.
    `FixedPriorityConflictResolver` | `getConflictResolver()`
    `Activation<?>` | `getNextActivation()` Returns one of the activations of one of the rules with the lowest priority.
    `java.util.Set<Activation<?>>` | `getNextActivations()` Returns the set of activations of rules with the lowest priority.
    `protected java.lang.Integer` | `getRulePriority(Activation<?> activation)`
    `protected java.lang.Integer` | `getRulePriority(RuleSpecification<?> specification)`
    `boolean` | `removeActivation(Activation<?> activation)` This method is called by the Agenda when an activation changes state and becomes or is still disabled.
    `protected boolean` | `removeActivation(Activation<?> activation, java.lang.Integer priority)`
    `protected void` | `setPriority(RuleSpecification<?> specification, int priority)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FixedPriorityConflictSet

          public FixedPriorityConflictSet(FixedPriorityConflictResolver resolver,
                                          java.util.Map<RuleSpecification<?>,java.lang.Integer> priorities)

    - #### FixedPriorityConflictSet

          public FixedPriorityConflictSet(FixedPriorityConflictResolver resolver,
                                          java.util.Map<RuleSpecification<?>,java.lang.Integer> priorities,
                                          int defaultPriority)

      Since:
        2.1

  - ### Method Detail

    - #### getNextActivation

          public Activation<?> getNextActivation()

      Returns one of the activations of one of the rules with the lowest priority.
      Specified by:
        `getNextActivation` in interface `ConflictSet`
      Returns:
        the next activation chosen by the resolver

    - #### addActivation

          public boolean addActivation(Activation<?> activation)

      Description copied from interface: `ChangeableConflictSet`
      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!
      Specified by:
        `addActivation` in interface `ChangeableConflictSet`
      Parameters:
        `activation` - the activation that should be added to the conflict set
      Returns:
        true, if the conflict set changed

    - #### removeActivation

          public boolean removeActivation(Activation<?> activation)

      Description copied from interface: `ChangeableConflictSet`
      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!
      Specified by:
        `removeActivation` in interface `ChangeableConflictSet`
      Parameters:
        `activation` - the activation that should be removed from the conflict set
      Returns:
        true, if the conflict set changed

    - #### addActivation

          protected boolean addActivation(Activation<?> activation,
                                          java.lang.Integer priority)

      Since:
        2.0

    - #### removeActivation

          protected boolean removeActivation(Activation<?> activation,
                                             java.lang.Integer priority)

      Since:
        2.0

    - #### setPriority

          protected void setPriority(RuleSpecification<?> specification,
                                     int priority)

    - #### getConflictResolver

          public FixedPriorityConflictResolver getConflictResolver()

      Specified by:
        `getConflictResolver` in interface `ConflictSet`

    - #### getNextActivations

          public java.util.Set<Activation<?>> getNextActivations()

      Returns the set of activations of rules with the lowest priority.
      Specified by:
        `getNextActivations` in interface `ConflictSet`

    - #### getConflictingActivations

          public java.util.Set<Activation<?>> getConflictingActivations()

      Returns all conflicting activations.
      Specified by:
        `getConflictingActivations` in interface `ConflictSet`

    - #### getRulePriority

          protected java.lang.Integer getRulePriority(Activation<?> activation)

    - #### getRulePriority

          protected java.lang.Integer getRulePriority(RuleSpecification<?> specification)