    001    /**
    002     * <copyright>
    003     * </copyright>
    004     *
    005     * $Id$
    006     */
    007    package com.hammurapi.eventbus.snapshot;
    008
    009    import org.eclipse.emf.common.util.EList;
    010
    011    /**
    012     * <!-- begin-user-doc -->
    013     * A representation of the model object '<em><b>Join Node</b></em>'.
    014     * <!-- end-user-doc -->
    015     *
    016     * <!-- begin-model-doc -->
    017     * Join node correlates/joins several events.
    018     * <!-- end-model-doc -->
    019     *
    020     * <p>
    021     * The following features are supported:
    022     * <ul>
    023     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getCollectors <em>Collectors</em>}</li>
    024     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getOutputIndices <em>Output Indices</em>}</li>
    025     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getHandler <em>Handler</em>}</li>
    026     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getNext <em>Next</em>}</li>
    027     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getPredicate <em>Predicate</em>}</li>
    028     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getPrev <em>Prev</em>}</li>
    029     *   <li>{@link com.hammurapi.eventbus.snapshot.JoinNode#getJoinInputs <em>Join Inputs</em>}</li>
    030     * </ul>
    031     * </p>
    032     *
    033     * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode()
    034     * @model
    035     * @generated
    036     */
    037    public interface JoinNode extends SnapshotElement {
    038            /**
    039             * Returns the value of the '<em><b>Collectors</b></em>' containment reference list.
    040             * The list contents are of type {@link com.hammurapi.eventbus.snapshot.JoinInputCollector}.
    041             * <!-- begin-user-doc -->
    042             * <p>
    043             * If the meaning of the '<em>Collectors</em>' containment reference list isn't clear,
    044             * there really should be more of a description here...
    045             * </p>
    046             * <!-- end-user-doc -->
    047             * <!-- begin-model-doc -->
    048             * Collectors of input events
    049             * <!-- end-model-doc -->
    050             * @return the value of the '<em>Collectors</em>' containment reference list.
    051             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_Collectors()
    052             * @model containment="true" lower="2"
    053             * @generated
    054             */
    055            EList<JoinInputCollector> getCollectors();
    056
    057            /**
    058             * Returns the value of the '<em><b>Output Indices</b></em>' attribute list.
    059             * The list contents are of type {@link java.lang.Integer}.
    060             * <!-- begin-user-doc -->
    061             * <p>
    062             * If the meaning of the '<em>Output Indices</em>' attribute list isn't clear,
    063             * there really should be more of a description here...
    064             * </p>
    065             * <!-- end-user-doc -->
    066             * <!-- begin-model-doc -->
    067             * Indexes of events which this node outputs.
    068             * <!-- end-model-doc -->
    069             * @return the value of the '<em>Output Indices</em>' attribute list.
    070             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_OutputIndices()
    071             * @model
    072             * @generated
    073             */
    074            EList<Integer> getOutputIndices();
    075
    076            /**
    077             * Returns the value of the '<em><b>Handler</b></em>' reference.
    078             * It is bidirectional and its opposite is '{@link com.hammurapi.eventbus.snapshot.Handler#getJoinNode <em>Join Node</em>}'.
    079             * <!-- begin-user-doc -->
    080             * <p>
    081             * If the meaning of the '<em>Handler</em>' reference isn't clear,
    082             * there really should be more of a description here...
    083             * </p>
    084             * <!-- end-user-doc -->
    085             * <!-- begin-model-doc -->
    086             * Node's output handler.
    087             * <!-- end-model-doc -->
    088             * @return the value of the '<em>Handler</em>' reference.
    089             * @see #setHandler(Handler)
    090             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_Handler()
    091             * @see com.hammurapi.eventbus.snapshot.Handler#getJoinNode
    092             * @model opposite="joinNode"
    093             * @generated
    094             */
    095            Handler getHandler();
    096
    097            /**
    098             * Sets the value of the '{@link com.hammurapi.eventbus.snapshot.JoinNode#getHandler <em>Handler</em>}' reference.
    099             * <!-- begin-user-doc -->
    100             * <!-- end-user-doc -->
    101             * @param value the new value of the '<em>Handler</em>' reference.
    102             * @see #getHandler()
    103             * @generated
    104             */
    105            void setHandler(Handler value);
    106
    107            /**
    108             * Returns the value of the '<em><b>Next</b></em>' reference.
    109             * It is bidirectional and its opposite is '{@link com.hammurapi.eventbus.snapshot.JoinNode#getPrev <em>Prev</em>}'.
    110             * <!-- begin-user-doc -->
    111             * <p>
    112             * If the meaning of the '<em>Next</em>' reference isn't clear,
    113             * there really should be more of a description here...
    114             * </p>
    115             * <!-- end-user-doc -->
    116             * <!-- begin-model-doc -->
    117             * Next join node. Join node can output either to a handler or to another join node.
    118             * <!-- end-model-doc -->
    119             * @return the value of the '<em>Next</em>' reference.
    120             * @see #setNext(JoinNode)
    121             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_Next()
    122             * @see com.hammurapi.eventbus.snapshot.JoinNode#getPrev
    123             * @model opposite="prev"
    124             * @generated
    125             */
    126            JoinNode getNext();
    127
    128            /**
    129             * Sets the value of the '{@link com.hammurapi.eventbus.snapshot.JoinNode#getNext <em>Next</em>}' reference.
    130             * <!-- begin-user-doc -->
    131             * <!-- end-user-doc -->
    132             * @param value the new value of the '<em>Next</em>' reference.
    133             * @see #getNext()
    134             * @generated
    135             */
    136            void setNext(JoinNode value);
    137
    138            /**
    139             * Returns the value of the '<em><b>Predicate</b></em>' containment reference.
    140             * <!-- begin-user-doc -->
    141             * <!-- end-user-doc -->
    142             * <!-- begin-model-doc -->
    143             * Join predicate.
    144             * <!-- end-model-doc -->
    145             * @return the value of the '<em>Predicate</em>' containment reference.
    146             * @see #setPredicate(Predicate)
    147             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_Predicate()
    148             * @model containment="true"
    149             * @generated
    150             */
    151            Predicate getPredicate();
    152
    153            /**
    154             * Sets the value of the '{@link com.hammurapi.eventbus.snapshot.JoinNode#getPredicate <em>Predicate</em>}' containment reference.
    155             * <!-- begin-user-doc -->
    156             * <!-- end-user-doc -->
    157             * @param value the new value of the '<em>Predicate</em>' containment reference.
    158             * @see #getPredicate()
    159             * @generated
    160             */
    161            void setPredicate(Predicate value);
    162
    163            /**
    164             * Returns the value of the '<em><b>Prev</b></em>' reference list.
    165             * The list contents are of type {@link com.hammurapi.eventbus.snapshot.JoinNode}.
    166             * It is bidirectional and its opposite is '{@link com.hammurapi.eventbus.snapshot.JoinNode#getNext <em>Next</em>}'.
    167             * <!-- begin-user-doc -->
    168             * <p>
    169             * If the meaning of the '<em>Prev</em>' reference isn't clear,
    170             * there really should be more of a description here...
    171             * </p>
    172             * <!-- end-user-doc -->
    173             * @return the value of the '<em>Prev</em>' reference list.
    174             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_Prev()
    175             * @see com.hammurapi.eventbus.snapshot.JoinNode#getNext
    176             * @model opposite="next"
    177             * @generated
    178             */
    179            EList<JoinNode> getPrev();
    180
    181            /**
    182             * Returns the value of the '<em><b>Join Inputs</b></em>' reference list.
    183             * The list contents are of type {@link com.hammurapi.eventbus.snapshot.JoinInput}.
    184             * It is bidirectional and its opposite is '{@link com.hammurapi.eventbus.snapshot.JoinInput#getJoinNode <em>Join Node</em>}'.
    185             * <!-- begin-user-doc -->
    186             * <p>
    187             * If the meaning of the '<em>Join Inputs</em>' reference list isn't clear,
    188             * there really should be more of a description here...
    189             * </p>
    190             * <!-- end-user-doc -->
    191             * @return the value of the '<em>Join Inputs</em>' reference list.
    192             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#getJoinNode_JoinInputs()
    193             * @see com.hammurapi.eventbus.snapshot.JoinInput#getJoinNode
    194             * @model opposite="joinNode"
    195             * @generated
    196             */
    197            EList<JoinInput> getJoinInputs();
    198
    199    } // JoinNode