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 and 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 and Description
    `CommunicationGroup(CommunicationTracker tracker, Node representative, int identifier)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and 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>`