001 /**
002 * <copyright>
003 * </copyright>
004 *
005 * $Id$
006 */
007 package com.hammurapi.eventbus.snapshot.impl;
008
009 import com.hammurapi.eventbus.snapshot.Handler;
010 import com.hammurapi.eventbus.snapshot.JoinInput;
011 import com.hammurapi.eventbus.snapshot.JoinInputCollector;
012 import com.hammurapi.eventbus.snapshot.JoinNode;
013 import com.hammurapi.eventbus.snapshot.Predicate;
014 import com.hammurapi.eventbus.snapshot.Snapshot;
015 import com.hammurapi.eventbus.snapshot.SnapshotPackage;
016
017 import java.util.Collection;
018
019 import org.eclipse.emf.common.notify.Notification;
020 import org.eclipse.emf.common.notify.NotificationChain;
021
022 import org.eclipse.emf.common.util.EList;
023
024 import org.eclipse.emf.ecore.EClass;
025 import org.eclipse.emf.ecore.InternalEObject;
026
027 import org.eclipse.emf.ecore.impl.ENotificationImpl;
028 import org.eclipse.emf.ecore.impl.EObjectImpl;
029
030 import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
031 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
032 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
033 import org.eclipse.emf.ecore.util.EcoreUtil;
034 import org.eclipse.emf.ecore.util.InternalEList;
035
036 /**
037 * <!-- begin-user-doc -->
038 * An implementation of the model object '<em><b>Join Node</b></em>'.
039 * <!-- end-user-doc -->
040 * <p>
041 * The following features are implemented:
042 * <ul>
043 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getId <em>Id</em>}</li>
044 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getName <em>Name</em>}</li>
045 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getDetails <em>Details</em>}</li>
046 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getSnapshot <em>Snapshot</em>}</li>
047 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getCollectors <em>Collectors</em>}</li>
048 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getOutputIndices <em>Output Indices</em>}</li>
049 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getHandler <em>Handler</em>}</li>
050 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getNext <em>Next</em>}</li>
051 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getPredicate <em>Predicate</em>}</li>
052 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getPrev <em>Prev</em>}</li>
053 * <li>{@link com.hammurapi.eventbus.snapshot.impl.JoinNodeImpl#getJoinInputs <em>Join Inputs</em>}</li>
054 * </ul>
055 * </p>
056 *
057 * @generated
058 */
059 public class JoinNodeImpl extends EObjectImpl implements JoinNode {
060 /**
061 * The default value of the '{@link #getId() <em>Id</em>}' attribute.
062 * <!-- begin-user-doc -->
063 * <!-- end-user-doc -->
064 * @see #getId()
065 * @generated
066 * @ordered
067 */
068 protected static final String ID_EDEFAULT = null;
069
070 /**
071 * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
072 * <!-- begin-user-doc -->
073 * <!-- end-user-doc -->
074 * @see #getId()
075 * @generated
076 * @ordered
077 */
078 protected String id = ID_EDEFAULT;
079
080 /**
081 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
082 * <!-- begin-user-doc -->
083 * <!-- end-user-doc -->
084 * @see #getName()
085 * @generated
086 * @ordered
087 */
088 protected static final String NAME_EDEFAULT = null;
089
090 /**
091 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
092 * <!-- begin-user-doc -->
093 * <!-- end-user-doc -->
094 * @see #getName()
095 * @generated
096 * @ordered
097 */
098 protected String name = NAME_EDEFAULT;
099
100 /**
101 * The default value of the '{@link #getDetails() <em>Details</em>}' attribute.
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @see #getDetails()
105 * @generated
106 * @ordered
107 */
108 protected static final String DETAILS_EDEFAULT = null;
109
110 /**
111 * The cached value of the '{@link #getDetails() <em>Details</em>}' attribute.
112 * <!-- begin-user-doc -->
113 * <!-- end-user-doc -->
114 * @see #getDetails()
115 * @generated
116 * @ordered
117 */
118 protected String details = DETAILS_EDEFAULT;
119
120 /**
121 * The cached value of the '{@link #getCollectors() <em>Collectors</em>}' containment reference list.
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @see #getCollectors()
125 * @generated
126 * @ordered
127 */
128 protected EList<JoinInputCollector> collectors;
129
130 /**
131 * The cached value of the '{@link #getOutputIndices() <em>Output Indices</em>}' attribute list.
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @see #getOutputIndices()
135 * @generated
136 * @ordered
137 */
138 protected EList<Integer> outputIndices;
139
140 /**
141 * The cached value of the '{@link #getHandler() <em>Handler</em>}' reference.
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @see #getHandler()
145 * @generated
146 * @ordered
147 */
148 protected Handler handler;
149
150 /**
151 * The cached value of the '{@link #getNext() <em>Next</em>}' reference.
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @see #getNext()
155 * @generated
156 * @ordered
157 */
158 protected JoinNode next;
159
160 /**
161 * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' containment reference.
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @see #getPredicate()
165 * @generated
166 * @ordered
167 */
168 protected Predicate predicate;
169
170 /**
171 * The cached value of the '{@link #getPrev() <em>Prev</em>}' reference list.
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @see #getPrev()
175 * @generated
176 * @ordered
177 */
178 protected EList<JoinNode> prev;
179
180 /**
181 * The cached value of the '{@link #getJoinInputs() <em>Join Inputs</em>}' reference list.
182 * <!-- begin-user-doc -->
183 * <!-- end-user-doc -->
184 * @see #getJoinInputs()
185 * @generated
186 * @ordered
187 */
188 protected EList<JoinInput> joinInputs;
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 protected JoinNodeImpl() {
196 super();
197 }
198
199 /**
200 * <!-- begin-user-doc -->
201 * <!-- end-user-doc -->
202 * @generated
203 */
204 @Override
205 protected EClass eStaticClass() {
206 return SnapshotPackage.Literals.JOIN_NODE;
207 }
208
209 /**
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 */
214 public String getId() {
215 return id;
216 }
217
218 /**
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @generated
222 */
223 public void setId(String newId) {
224 String oldId = id;
225 id = newId;
226 if (eNotificationRequired())
227 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__ID, oldId, id));
228 }
229
230 /**
231 * <!-- begin-user-doc -->
232 * <!-- end-user-doc -->
233 * @generated
234 */
235 public String getName() {
236 return name;
237 }
238
239 /**
240 * <!-- begin-user-doc -->
241 * <!-- end-user-doc -->
242 * @generated
243 */
244 public void setName(String newName) {
245 String oldName = name;
246 name = newName;
247 if (eNotificationRequired())
248 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__NAME, oldName, name));
249 }
250
251 /**
252 * <!-- begin-user-doc -->
253 * <!-- end-user-doc -->
254 * @generated
255 */
256 public String getDetails() {
257 return details;
258 }
259
260 /**
261 * <!-- begin-user-doc -->
262 * <!-- end-user-doc -->
263 * @generated
264 */
265 public void setDetails(String newDetails) {
266 String oldDetails = details;
267 details = newDetails;
268 if (eNotificationRequired())
269 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__DETAILS, oldDetails, details));
270 }
271
272 /**
273 * <!-- begin-user-doc -->
274 * <!-- end-user-doc -->
275 * @generated
276 */
277 public Snapshot getSnapshot() {
278 if (eContainerFeatureID() != SnapshotPackage.JOIN_NODE__SNAPSHOT) return null;
279 return (Snapshot)eContainer();
280 }
281
282 /**
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 */
287 public NotificationChain basicSetSnapshot(Snapshot newSnapshot, NotificationChain msgs) {
288 msgs = eBasicSetContainer((InternalEObject)newSnapshot, SnapshotPackage.JOIN_NODE__SNAPSHOT, msgs);
289 return msgs;
290 }
291
292 /**
293 * <!-- begin-user-doc -->
294 * <!-- end-user-doc -->
295 * @generated
296 */
297 public void setSnapshot(Snapshot newSnapshot) {
298 if (newSnapshot != eInternalContainer() || (eContainerFeatureID() != SnapshotPackage.JOIN_NODE__SNAPSHOT && newSnapshot != null)) {
299 if (EcoreUtil.isAncestor(this, newSnapshot))
300 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
301 NotificationChain msgs = null;
302 if (eInternalContainer() != null)
303 msgs = eBasicRemoveFromContainer(msgs);
304 if (newSnapshot != null)
305 msgs = ((InternalEObject)newSnapshot).eInverseAdd(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
306 msgs = basicSetSnapshot(newSnapshot, msgs);
307 if (msgs != null) msgs.dispatch();
308 }
309 else if (eNotificationRequired())
310 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__SNAPSHOT, newSnapshot, newSnapshot));
311 }
312
313 /**
314 * <!-- begin-user-doc -->
315 * <!-- end-user-doc -->
316 * @generated
317 */
318 public EList<JoinInputCollector> getCollectors() {
319 if (collectors == null) {
320 collectors = new EObjectContainmentEList<JoinInputCollector>(JoinInputCollector.class, this, SnapshotPackage.JOIN_NODE__COLLECTORS);
321 }
322 return collectors;
323 }
324
325 /**
326 * <!-- begin-user-doc -->
327 * <!-- end-user-doc -->
328 * @generated
329 */
330 public EList<Integer> getOutputIndices() {
331 if (outputIndices == null) {
332 outputIndices = new EDataTypeUniqueEList<Integer>(Integer.class, this, SnapshotPackage.JOIN_NODE__OUTPUT_INDICES);
333 }
334 return outputIndices;
335 }
336
337 /**
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @generated
341 */
342 public Handler getHandler() {
343 if (handler != null && handler.eIsProxy()) {
344 InternalEObject oldHandler = (InternalEObject)handler;
345 handler = (Handler)eResolveProxy(oldHandler);
346 if (handler != oldHandler) {
347 if (eNotificationRequired())
348 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SnapshotPackage.JOIN_NODE__HANDLER, oldHandler, handler));
349 }
350 }
351 return handler;
352 }
353
354 /**
355 * <!-- begin-user-doc -->
356 * <!-- end-user-doc -->
357 * @generated
358 */
359 public Handler basicGetHandler() {
360 return handler;
361 }
362
363 /**
364 * <!-- begin-user-doc -->
365 * <!-- end-user-doc -->
366 * @generated
367 */
368 public NotificationChain basicSetHandler(Handler newHandler, NotificationChain msgs) {
369 Handler oldHandler = handler;
370 handler = newHandler;
371 if (eNotificationRequired()) {
372 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__HANDLER, oldHandler, newHandler);
373 if (msgs == null) msgs = notification; else msgs.add(notification);
374 }
375 return msgs;
376 }
377
378 /**
379 * <!-- begin-user-doc -->
380 * <!-- end-user-doc -->
381 * @generated
382 */
383 public void setHandler(Handler newHandler) {
384 if (newHandler != handler) {
385 NotificationChain msgs = null;
386 if (handler != null)
387 msgs = ((InternalEObject)handler).eInverseRemove(this, SnapshotPackage.HANDLER__JOIN_NODE, Handler.class, msgs);
388 if (newHandler != null)
389 msgs = ((InternalEObject)newHandler).eInverseAdd(this, SnapshotPackage.HANDLER__JOIN_NODE, Handler.class, msgs);
390 msgs = basicSetHandler(newHandler, msgs);
391 if (msgs != null) msgs.dispatch();
392 }
393 else if (eNotificationRequired())
394 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__HANDLER, newHandler, newHandler));
395 }
396
397 /**
398 * <!-- begin-user-doc -->
399 * <!-- end-user-doc -->
400 * @generated
401 */
402 public JoinNode getNext() {
403 if (next != null && next.eIsProxy()) {
404 InternalEObject oldNext = (InternalEObject)next;
405 next = (JoinNode)eResolveProxy(oldNext);
406 if (next != oldNext) {
407 if (eNotificationRequired())
408 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SnapshotPackage.JOIN_NODE__NEXT, oldNext, next));
409 }
410 }
411 return next;
412 }
413
414 /**
415 * <!-- begin-user-doc -->
416 * <!-- end-user-doc -->
417 * @generated
418 */
419 public JoinNode basicGetNext() {
420 return next;
421 }
422
423 /**
424 * <!-- begin-user-doc -->
425 * <!-- end-user-doc -->
426 * @generated
427 */
428 public NotificationChain basicSetNext(JoinNode newNext, NotificationChain msgs) {
429 JoinNode oldNext = next;
430 next = newNext;
431 if (eNotificationRequired()) {
432 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__NEXT, oldNext, newNext);
433 if (msgs == null) msgs = notification; else msgs.add(notification);
434 }
435 return msgs;
436 }
437
438 /**
439 * <!-- begin-user-doc -->
440 * <!-- end-user-doc -->
441 * @generated
442 */
443 public void setNext(JoinNode newNext) {
444 if (newNext != next) {
445 NotificationChain msgs = null;
446 if (next != null)
447 msgs = ((InternalEObject)next).eInverseRemove(this, SnapshotPackage.JOIN_NODE__PREV, JoinNode.class, msgs);
448 if (newNext != null)
449 msgs = ((InternalEObject)newNext).eInverseAdd(this, SnapshotPackage.JOIN_NODE__PREV, JoinNode.class, msgs);
450 msgs = basicSetNext(newNext, msgs);
451 if (msgs != null) msgs.dispatch();
452 }
453 else if (eNotificationRequired())
454 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__NEXT, newNext, newNext));
455 }
456
457 /**
458 * <!-- begin-user-doc -->
459 * <!-- end-user-doc -->
460 * @generated
461 */
462 public Predicate getPredicate() {
463 return predicate;
464 }
465
466 /**
467 * <!-- begin-user-doc -->
468 * <!-- end-user-doc -->
469 * @generated
470 */
471 public NotificationChain basicSetPredicate(Predicate newPredicate, NotificationChain msgs) {
472 Predicate oldPredicate = predicate;
473 predicate = newPredicate;
474 if (eNotificationRequired()) {
475 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__PREDICATE, oldPredicate, newPredicate);
476 if (msgs == null) msgs = notification; else msgs.add(notification);
477 }
478 return msgs;
479 }
480
481 /**
482 * <!-- begin-user-doc -->
483 * <!-- end-user-doc -->
484 * @generated
485 */
486 public void setPredicate(Predicate newPredicate) {
487 if (newPredicate != predicate) {
488 NotificationChain msgs = null;
489 if (predicate != null)
490 msgs = ((InternalEObject)predicate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnapshotPackage.JOIN_NODE__PREDICATE, null, msgs);
491 if (newPredicate != null)
492 msgs = ((InternalEObject)newPredicate).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SnapshotPackage.JOIN_NODE__PREDICATE, null, msgs);
493 msgs = basicSetPredicate(newPredicate, msgs);
494 if (msgs != null) msgs.dispatch();
495 }
496 else if (eNotificationRequired())
497 eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.JOIN_NODE__PREDICATE, newPredicate, newPredicate));
498 }
499
500 /**
501 * <!-- begin-user-doc -->
502 * <!-- end-user-doc -->
503 * @generated
504 */
505 public EList<JoinNode> getPrev() {
506 if (prev == null) {
507 prev = new EObjectWithInverseResolvingEList<JoinNode>(JoinNode.class, this, SnapshotPackage.JOIN_NODE__PREV, SnapshotPackage.JOIN_NODE__NEXT);
508 }
509 return prev;
510 }
511
512 /**
513 * <!-- begin-user-doc -->
514 * <!-- end-user-doc -->
515 * @generated
516 */
517 public EList<JoinInput> getJoinInputs() {
518 if (joinInputs == null) {
519 joinInputs = new EObjectWithInverseResolvingEList<JoinInput>(JoinInput.class, this, SnapshotPackage.JOIN_NODE__JOIN_INPUTS, SnapshotPackage.JOIN_INPUT__JOIN_NODE);
520 }
521 return joinInputs;
522 }
523
524 /**
525 * <!-- begin-user-doc -->
526 * <!-- end-user-doc -->
527 * @generated
528 */
529 @SuppressWarnings("unchecked")
530 @Override
531 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
532 switch (featureID) {
533 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
534 if (eInternalContainer() != null)
535 msgs = eBasicRemoveFromContainer(msgs);
536 return basicSetSnapshot((Snapshot)otherEnd, msgs);
537 case SnapshotPackage.JOIN_NODE__HANDLER:
538 if (handler != null)
539 msgs = ((InternalEObject)handler).eInverseRemove(this, SnapshotPackage.HANDLER__JOIN_NODE, Handler.class, msgs);
540 return basicSetHandler((Handler)otherEnd, msgs);
541 case SnapshotPackage.JOIN_NODE__NEXT:
542 if (next != null)
543 msgs = ((InternalEObject)next).eInverseRemove(this, SnapshotPackage.JOIN_NODE__PREV, JoinNode.class, msgs);
544 return basicSetNext((JoinNode)otherEnd, msgs);
545 case SnapshotPackage.JOIN_NODE__PREV:
546 return ((InternalEList<InternalEObject>)(InternalEList<?>)getPrev()).basicAdd(otherEnd, msgs);
547 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
548 return ((InternalEList<InternalEObject>)(InternalEList<?>)getJoinInputs()).basicAdd(otherEnd, msgs);
549 }
550 return super.eInverseAdd(otherEnd, featureID, msgs);
551 }
552
553 /**
554 * <!-- begin-user-doc -->
555 * <!-- end-user-doc -->
556 * @generated
557 */
558 @Override
559 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
560 switch (featureID) {
561 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
562 return basicSetSnapshot(null, msgs);
563 case SnapshotPackage.JOIN_NODE__COLLECTORS:
564 return ((InternalEList<?>)getCollectors()).basicRemove(otherEnd, msgs);
565 case SnapshotPackage.JOIN_NODE__HANDLER:
566 return basicSetHandler(null, msgs);
567 case SnapshotPackage.JOIN_NODE__NEXT:
568 return basicSetNext(null, msgs);
569 case SnapshotPackage.JOIN_NODE__PREDICATE:
570 return basicSetPredicate(null, msgs);
571 case SnapshotPackage.JOIN_NODE__PREV:
572 return ((InternalEList<?>)getPrev()).basicRemove(otherEnd, msgs);
573 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
574 return ((InternalEList<?>)getJoinInputs()).basicRemove(otherEnd, msgs);
575 }
576 return super.eInverseRemove(otherEnd, featureID, msgs);
577 }
578
579 /**
580 * <!-- begin-user-doc -->
581 * <!-- end-user-doc -->
582 * @generated
583 */
584 @Override
585 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
586 switch (eContainerFeatureID()) {
587 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
588 return eInternalContainer().eInverseRemove(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
589 }
590 return super.eBasicRemoveFromContainerFeature(msgs);
591 }
592
593 /**
594 * <!-- begin-user-doc -->
595 * <!-- end-user-doc -->
596 * @generated
597 */
598 @Override
599 public Object eGet(int featureID, boolean resolve, boolean coreType) {
600 switch (featureID) {
601 case SnapshotPackage.JOIN_NODE__ID:
602 return getId();
603 case SnapshotPackage.JOIN_NODE__NAME:
604 return getName();
605 case SnapshotPackage.JOIN_NODE__DETAILS:
606 return getDetails();
607 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
608 return getSnapshot();
609 case SnapshotPackage.JOIN_NODE__COLLECTORS:
610 return getCollectors();
611 case SnapshotPackage.JOIN_NODE__OUTPUT_INDICES:
612 return getOutputIndices();
613 case SnapshotPackage.JOIN_NODE__HANDLER:
614 if (resolve) return getHandler();
615 return basicGetHandler();
616 case SnapshotPackage.JOIN_NODE__NEXT:
617 if (resolve) return getNext();
618 return basicGetNext();
619 case SnapshotPackage.JOIN_NODE__PREDICATE:
620 return getPredicate();
621 case SnapshotPackage.JOIN_NODE__PREV:
622 return getPrev();
623 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
624 return getJoinInputs();
625 }
626 return super.eGet(featureID, resolve, coreType);
627 }
628
629 /**
630 * <!-- begin-user-doc -->
631 * <!-- end-user-doc -->
632 * @generated
633 */
634 @SuppressWarnings("unchecked")
635 @Override
636 public void eSet(int featureID, Object newValue) {
637 switch (featureID) {
638 case SnapshotPackage.JOIN_NODE__ID:
639 setId((String)newValue);
640 return;
641 case SnapshotPackage.JOIN_NODE__NAME:
642 setName((String)newValue);
643 return;
644 case SnapshotPackage.JOIN_NODE__DETAILS:
645 setDetails((String)newValue);
646 return;
647 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
648 setSnapshot((Snapshot)newValue);
649 return;
650 case SnapshotPackage.JOIN_NODE__COLLECTORS:
651 getCollectors().clear();
652 getCollectors().addAll((Collection<? extends JoinInputCollector>)newValue);
653 return;
654 case SnapshotPackage.JOIN_NODE__OUTPUT_INDICES:
655 getOutputIndices().clear();
656 getOutputIndices().addAll((Collection<? extends Integer>)newValue);
657 return;
658 case SnapshotPackage.JOIN_NODE__HANDLER:
659 setHandler((Handler)newValue);
660 return;
661 case SnapshotPackage.JOIN_NODE__NEXT:
662 setNext((JoinNode)newValue);
663 return;
664 case SnapshotPackage.JOIN_NODE__PREDICATE:
665 setPredicate((Predicate)newValue);
666 return;
667 case SnapshotPackage.JOIN_NODE__PREV:
668 getPrev().clear();
669 getPrev().addAll((Collection<? extends JoinNode>)newValue);
670 return;
671 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
672 getJoinInputs().clear();
673 getJoinInputs().addAll((Collection<? extends JoinInput>)newValue);
674 return;
675 }
676 super.eSet(featureID, newValue);
677 }
678
679 /**
680 * <!-- begin-user-doc -->
681 * <!-- end-user-doc -->
682 * @generated
683 */
684 @Override
685 public void eUnset(int featureID) {
686 switch (featureID) {
687 case SnapshotPackage.JOIN_NODE__ID:
688 setId(ID_EDEFAULT);
689 return;
690 case SnapshotPackage.JOIN_NODE__NAME:
691 setName(NAME_EDEFAULT);
692 return;
693 case SnapshotPackage.JOIN_NODE__DETAILS:
694 setDetails(DETAILS_EDEFAULT);
695 return;
696 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
697 setSnapshot((Snapshot)null);
698 return;
699 case SnapshotPackage.JOIN_NODE__COLLECTORS:
700 getCollectors().clear();
701 return;
702 case SnapshotPackage.JOIN_NODE__OUTPUT_INDICES:
703 getOutputIndices().clear();
704 return;
705 case SnapshotPackage.JOIN_NODE__HANDLER:
706 setHandler((Handler)null);
707 return;
708 case SnapshotPackage.JOIN_NODE__NEXT:
709 setNext((JoinNode)null);
710 return;
711 case SnapshotPackage.JOIN_NODE__PREDICATE:
712 setPredicate((Predicate)null);
713 return;
714 case SnapshotPackage.JOIN_NODE__PREV:
715 getPrev().clear();
716 return;
717 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
718 getJoinInputs().clear();
719 return;
720 }
721 super.eUnset(featureID);
722 }
723
724 /**
725 * <!-- begin-user-doc -->
726 * <!-- end-user-doc -->
727 * @generated
728 */
729 @Override
730 public boolean eIsSet(int featureID) {
731 switch (featureID) {
732 case SnapshotPackage.JOIN_NODE__ID:
733 return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
734 case SnapshotPackage.JOIN_NODE__NAME:
735 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
736 case SnapshotPackage.JOIN_NODE__DETAILS:
737 return DETAILS_EDEFAULT == null ? details != null : !DETAILS_EDEFAULT.equals(details);
738 case SnapshotPackage.JOIN_NODE__SNAPSHOT:
739 return getSnapshot() != null;
740 case SnapshotPackage.JOIN_NODE__COLLECTORS:
741 return collectors != null && !collectors.isEmpty();
742 case SnapshotPackage.JOIN_NODE__OUTPUT_INDICES:
743 return outputIndices != null && !outputIndices.isEmpty();
744 case SnapshotPackage.JOIN_NODE__HANDLER:
745 return handler != null;
746 case SnapshotPackage.JOIN_NODE__NEXT:
747 return next != null;
748 case SnapshotPackage.JOIN_NODE__PREDICATE:
749 return predicate != null;
750 case SnapshotPackage.JOIN_NODE__PREV:
751 return prev != null && !prev.isEmpty();
752 case SnapshotPackage.JOIN_NODE__JOIN_INPUTS:
753 return joinInputs != null && !joinInputs.isEmpty();
754 }
755 return super.eIsSet(featureID);
756 }
757
758 /**
759 * <!-- begin-user-doc -->
760 * <!-- end-user-doc -->
761 * @generated
762 */
763 @Override
764 public String toString() {
765 if (eIsProxy()) return super.toString();
766
767 StringBuffer result = new StringBuffer(super.toString());
768 result.append(" (id: ");
769 result.append(id);
770 result.append(", name: ");
771 result.append(name);
772 result.append(", details: ");
773 result.append(details);
774 result.append(", outputIndices: ");
775 result.append(outputIndices);
776 result.append(')');
777 return result.toString();
778 }
779
780 } //JoinNodeImpl