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