Package org.eclipse.viatra.query.runtime.rete.network.communication

## Class CommunicationGroup

- java.lang.Object
- - org.eclipse.viatra.query.runtime.rete.network.communication.CommunicationGroup

- All Implemented Interfaces:
    `java.lang.Comparable<CommunicationGroup>`

      public abstract class CommunicationGroup
      extends java.lang.Object
      implements java.lang.Comparable<CommunicationGroup>

  A communication group represents a set of nodes in the communication graph that form a strongly connected component.
  Since:
    1.6

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `identifier` | May be changed during bumping in `CommunicationTracker.registerDependency`
    `boolean` | `isEnqueued` | Marker for the `CommunicationTracker`
    `protected Node` | `representative` |
    `protected CommunicationTracker` | `tracker` |
    `static java.lang.String` | `UNSUPPORTED_MESSAGE_KIND` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `CommunicationGroup​(CommunicationTracker tracker, Node representative, int identifier)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `compareTo​(CommunicationGroup that)` |
    `abstract void` | `deliverMessages()` |
    `boolean` | `equals​(java.lang.Object obj)` |
    `abstract java.util.Map<MessageSelector,​java.util.Collection<Mailbox>>` | `getMailboxes()` |
    `Node` | `getRepresentative()` |
    `int` | `hashCode()` |
    `abstract boolean` | `isEmpty()` |
    `abstract boolean` | `isRecursive()` |
    `abstract void` | `notifyHasMessage​(Mailbox mailbox, MessageSelector kind)` |
    `abstract void` | `notifyLostAllMessages​(Mailbox mailbox, MessageSelector kind)` |
    `java.lang.String` | `toString()` |

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### UNSUPPORTED_MESSAGE_KIND

          public static final java.lang.String UNSUPPORTED_MESSAGE_KIND

      See Also:
        Constant Field Values

    - #### isEnqueued

          public boolean isEnqueued

      Marker for the `CommunicationTracker`

    - #### representative

          protected final Node representative

    - #### identifier

          protected int identifier

      May be changed during bumping in `CommunicationTracker.registerDependency`

    - #### tracker

          protected final CommunicationTracker tracker

      Since:
        1.7

  - ### Constructor Detail

    - #### CommunicationGroup

          public CommunicationGroup​(CommunicationTracker tracker,
                                    Node representative,
                                    int identifier)

      Since:
        1.7

  - ### Method Detail

    - #### deliverMessages

          public abstract void deliverMessages()

    - #### getRepresentative

          public Node getRepresentative()

    - #### isEmpty

          public abstract boolean isEmpty()

    - #### notifyLostAllMessages

          public abstract void notifyLostAllMessages​(Mailbox mailbox,
                                                     MessageSelector kind)

      Since:
        2.0

    - #### notifyHasMessage

          public abstract void notifyHasMessage​(Mailbox mailbox,
                                                MessageSelector kind)

      Since:
        2.0

    - #### getMailboxes

          public abstract java.util.Map<MessageSelector,​java.util.Collection<Mailbox>> getMailboxes()

    - #### isRecursive

          public abstract boolean isRecursive()

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `java.lang.Object`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### equals

          public boolean equals​(java.lang.Object obj)

      Overrides:
        `equals` in class `java.lang.Object`

    - #### compareTo

          public int compareTo​(CommunicationGroup that)

      Specified by:
        `compareTo` in interface `java.lang.Comparable<CommunicationGroup>`