001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.eventbus.snapshot.impl;
008    
009    import com.hammurapi.eventbus.snapshot.Predicate;
010    import com.hammurapi.eventbus.snapshot.PredicateNode;
011    import com.hammurapi.eventbus.snapshot.PredicateNodeOutput;
012    import com.hammurapi.eventbus.snapshot.Snapshot;
013    import com.hammurapi.eventbus.snapshot.SnapshotPackage;
014    
015    import java.util.Collection;
016    
017    import org.eclipse.emf.common.notify.Notification;
018    
019    import org.eclipse.emf.common.notify.NotificationChain;
020    import org.eclipse.emf.common.util.EList;
021    
022    import org.eclipse.emf.ecore.EClass;
023    
024    import org.eclipse.emf.ecore.InternalEObject;
025    import org.eclipse.emf.ecore.impl.ENotificationImpl;
026    import org.eclipse.emf.ecore.impl.EObjectImpl;
027    
028    import org.eclipse.emf.ecore.util.EObjectResolvingEList;
029    import org.eclipse.emf.ecore.util.EcoreUtil;
030    
031    /**
032     * <!-- begin-user-doc -->
033     * An implementation of the model object '<em><b>Predicate Node</b></em>'.
034     * <!-- end-user-doc -->
035     * <p>
036     * The following features are implemented:
037     * <ul>
038     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getId <em>Id</em>}</li>
039     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getName <em>Name</em>}</li>
040     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getDetails <em>Details</em>}</li>
041     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getSnapshot <em>Snapshot</em>}</li>
042     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getTrueOutputs <em>True Outputs</em>}</li>
043     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getFalseOutputs <em>False Outputs</em>}</li>
044     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getTrueChildren <em>True Children</em>}</li>
045     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getFalseChildren <em>False Children</em>}</li>
046     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#isIsRoot <em>Is Root</em>}</li>
047     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.PredicateNodeImpl#getPredicate <em>Predicate</em>}</li>
048     * </ul>
049     * </p>
050     *
051     * @generated
052     */
053    public class PredicateNodeImpl extends EObjectImpl implements PredicateNode {
054            /**
055             * The default value of the '{@link #getId() <em>Id</em>}' attribute.
056             * <!-- begin-user-doc -->
057             * <!-- end-user-doc -->
058             * @see #getId()
059             * @generated
060             * @ordered
061             */
062            protected static final String ID_EDEFAULT = null;
063    
064            /**
065             * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
066             * <!-- begin-user-doc -->
067             * <!-- end-user-doc -->
068             * @see #getId()
069             * @generated
070             * @ordered
071             */
072            protected String id = ID_EDEFAULT;
073    
074            /**
075             * The default value of the '{@link #getName() <em>Name</em>}' attribute.
076             * <!-- begin-user-doc -->
077             * <!-- end-user-doc -->
078             * @see #getName()
079             * @generated
080             * @ordered
081             */
082            protected static final String NAME_EDEFAULT = null;
083    
084            /**
085             * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
086             * <!-- begin-user-doc -->
087             * <!-- end-user-doc -->
088             * @see #getName()
089             * @generated
090             * @ordered
091             */
092            protected String name = NAME_EDEFAULT;
093    
094            /**
095             * The default value of the '{@link #getDetails() <em>Details</em>}' attribute.
096             * <!-- begin-user-doc -->
097             * <!-- end-user-doc -->
098             * @see #getDetails()
099             * @generated
100             * @ordered
101             */
102            protected static final String DETAILS_EDEFAULT = null;
103    
104            /**
105             * The cached value of the '{@link #getDetails() <em>Details</em>}' attribute.
106             * <!-- begin-user-doc -->
107             * <!-- end-user-doc -->
108             * @see #getDetails()
109             * @generated
110             * @ordered
111             */
112            protected String details = DETAILS_EDEFAULT;
113    
114            /**
115             * The cached value of the '{@link #getTrueOutputs() <em>True Outputs</em>}' reference list.
116             * <!-- begin-user-doc -->
117             * <!-- end-user-doc -->
118             * @see #getTrueOutputs()
119             * @generated
120             * @ordered
121             */
122            protected EList<PredicateNodeOutput> trueOutputs;
123    
124            /**
125             * The cached value of the '{@link #getFalseOutputs() <em>False Outputs</em>}' reference list.
126             * <!-- begin-user-doc -->
127             * <!-- end-user-doc -->
128             * @see #getFalseOutputs()
129             * @generated
130             * @ordered
131             */
132            protected EList<PredicateNodeOutput> falseOutputs;
133    
134            /**
135             * The cached value of the '{@link #getTrueChildren() <em>True Children</em>}' reference list.
136             * <!-- begin-user-doc -->
137             * <!-- end-user-doc -->
138             * @see #getTrueChildren()
139             * @generated
140             * @ordered
141             */
142            protected EList<PredicateNode> trueChildren;
143    
144            /**
145             * The cached value of the '{@link #getFalseChildren() <em>False Children</em>}' reference list.
146             * <!-- begin-user-doc -->
147             * <!-- end-user-doc -->
148             * @see #getFalseChildren()
149             * @generated
150             * @ordered
151             */
152            protected EList<PredicateNode> falseChildren;
153    
154            /**
155             * The default value of the '{@link #isIsRoot() <em>Is Root</em>}' attribute.
156             * <!-- begin-user-doc -->
157             * <!-- end-user-doc -->
158             * @see #isIsRoot()
159             * @generated
160             * @ordered
161             */
162            protected static final boolean IS_ROOT_EDEFAULT = false;
163    
164            /**
165             * The cached value of the '{@link #isIsRoot() <em>Is Root</em>}' attribute.
166             * <!-- begin-user-doc -->
167             * <!-- end-user-doc -->
168             * @see #isIsRoot()
169             * @generated
170             * @ordered
171             */
172            protected boolean isRoot = IS_ROOT_EDEFAULT;
173    
174            /**
175             * The cached value of the '{@link #getPredicate() <em>Predicate</em>}' containment reference.
176             * <!-- begin-user-doc -->
177             * <!-- end-user-doc -->
178             * @see #getPredicate()
179             * @generated
180             * @ordered
181             */
182            protected Predicate predicate;
183    
184            /**
185             * <!-- begin-user-doc -->
186             * <!-- end-user-doc -->
187             * @generated
188             */
189            protected PredicateNodeImpl() {
190                    super();
191            }
192    
193            /**
194             * <!-- begin-user-doc -->
195             * <!-- end-user-doc -->
196             * @generated
197             */
198            @Override
199            protected EClass eStaticClass() {
200                    return SnapshotPackage.Literals.PREDICATE_NODE;
201            }
202    
203            /**
204             * <!-- begin-user-doc -->
205             * <!-- end-user-doc -->
206             * @generated
207             */
208            public String getId() {
209                    return id;
210            }
211    
212            /**
213             * <!-- begin-user-doc -->
214             * <!-- end-user-doc -->
215             * @generated
216             */
217            public void setId(String newId) {
218                    String oldId = id;
219                    id = newId;
220                    if (eNotificationRequired())
221                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__ID, oldId, id));
222            }
223    
224            /**
225             * <!-- begin-user-doc -->
226             * <!-- end-user-doc -->
227             * @generated
228             */
229            public String getName() {
230                    return name;
231            }
232    
233            /**
234             * <!-- begin-user-doc -->
235             * <!-- end-user-doc -->
236             * @generated
237             */
238            public void setName(String newName) {
239                    String oldName = name;
240                    name = newName;
241                    if (eNotificationRequired())
242                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__NAME, oldName, name));
243            }
244    
245            /**
246             * <!-- begin-user-doc -->
247             * <!-- end-user-doc -->
248             * @generated
249             */
250            public String getDetails() {
251                    return details;
252            }
253    
254            /**
255             * <!-- begin-user-doc -->
256             * <!-- end-user-doc -->
257             * @generated
258             */
259            public void setDetails(String newDetails) {
260                    String oldDetails = details;
261                    details = newDetails;
262                    if (eNotificationRequired())
263                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__DETAILS, oldDetails, details));
264            }
265    
266            /**
267             * <!-- begin-user-doc -->
268             * <!-- end-user-doc -->
269             * @generated
270             */
271            public Snapshot getSnapshot() {
272                    if (eContainerFeatureID() != SnapshotPackage.PREDICATE_NODE__SNAPSHOT) return null;
273                    return (Snapshot)eContainer();
274            }
275    
276            /**
277             * <!-- begin-user-doc -->
278             * <!-- end-user-doc -->
279             * @generated
280             */
281            public NotificationChain basicSetSnapshot(Snapshot newSnapshot, NotificationChain msgs) {
282                    msgs = eBasicSetContainer((InternalEObject)newSnapshot, SnapshotPackage.PREDICATE_NODE__SNAPSHOT, msgs);
283                    return msgs;
284            }
285    
286            /**
287             * <!-- begin-user-doc -->
288             * <!-- end-user-doc -->
289             * @generated
290             */
291            public void setSnapshot(Snapshot newSnapshot) {
292                    if (newSnapshot != eInternalContainer() || (eContainerFeatureID() != SnapshotPackage.PREDICATE_NODE__SNAPSHOT && newSnapshot != null)) {
293                            if (EcoreUtil.isAncestor(this, newSnapshot))
294                                    throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
295                            NotificationChain msgs = null;
296                            if (eInternalContainer() != null)
297                                    msgs = eBasicRemoveFromContainer(msgs);
298                            if (newSnapshot != null)
299                                    msgs = ((InternalEObject)newSnapshot).eInverseAdd(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
300                            msgs = basicSetSnapshot(newSnapshot, msgs);
301                            if (msgs != null) msgs.dispatch();
302                    }
303                    else if (eNotificationRequired())
304                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__SNAPSHOT, newSnapshot, newSnapshot));
305            }
306    
307            /**
308             * <!-- begin-user-doc -->
309             * <!-- end-user-doc -->
310             * @generated
311             */
312            public EList<PredicateNodeOutput> getTrueOutputs() {
313                    if (trueOutputs == null) {
314                            trueOutputs = new EObjectResolvingEList<PredicateNodeOutput>(PredicateNodeOutput.class, this, SnapshotPackage.PREDICATE_NODE__TRUE_OUTPUTS);
315                    }
316                    return trueOutputs;
317            }
318    
319            /**
320             * <!-- begin-user-doc -->
321             * <!-- end-user-doc -->
322             * @generated
323             */
324            public EList<PredicateNodeOutput> getFalseOutputs() {
325                    if (falseOutputs == null) {
326                            falseOutputs = new EObjectResolvingEList<PredicateNodeOutput>(PredicateNodeOutput.class, this, SnapshotPackage.PREDICATE_NODE__FALSE_OUTPUTS);
327                    }
328                    return falseOutputs;
329            }
330    
331            /**
332             * <!-- begin-user-doc -->
333             * <!-- end-user-doc -->
334             * @generated
335             */
336            public EList<PredicateNode> getTrueChildren() {
337                    if (trueChildren == null) {
338                            trueChildren = new EObjectResolvingEList<PredicateNode>(PredicateNode.class, this, SnapshotPackage.PREDICATE_NODE__TRUE_CHILDREN);
339                    }
340                    return trueChildren;
341            }
342    
343            /**
344             * <!-- begin-user-doc -->
345             * <!-- end-user-doc -->
346             * @generated
347             */
348            public EList<PredicateNode> getFalseChildren() {
349                    if (falseChildren == null) {
350                            falseChildren = new EObjectResolvingEList<PredicateNode>(PredicateNode.class, this, SnapshotPackage.PREDICATE_NODE__FALSE_CHILDREN);
351                    }
352                    return falseChildren;
353            }
354    
355            /**
356             * <!-- begin-user-doc -->
357             * <!-- end-user-doc -->
358             * @generated
359             */
360            public boolean isIsRoot() {
361                    return isRoot;
362            }
363    
364            /**
365             * <!-- begin-user-doc -->
366             * <!-- end-user-doc -->
367             * @generated
368             */
369            public void setIsRoot(boolean newIsRoot) {
370                    boolean oldIsRoot = isRoot;
371                    isRoot = newIsRoot;
372                    if (eNotificationRequired())
373                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__IS_ROOT, oldIsRoot, isRoot));
374            }
375    
376            /**
377             * <!-- begin-user-doc -->
378             * <!-- end-user-doc -->
379             * @generated
380             */
381            public Predicate getPredicate() {
382                    return predicate;
383            }
384    
385            /**
386             * <!-- begin-user-doc -->
387             * <!-- end-user-doc -->
388             * @generated
389             */
390            public NotificationChain basicSetPredicate(Predicate newPredicate, NotificationChain msgs) {
391                    Predicate oldPredicate = predicate;
392                    predicate = newPredicate;
393                    if (eNotificationRequired()) {
394                            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__PREDICATE, oldPredicate, newPredicate);
395                            if (msgs == null) msgs = notification; else msgs.add(notification);
396                    }
397                    return msgs;
398            }
399    
400            /**
401             * <!-- begin-user-doc -->
402             * <!-- end-user-doc -->
403             * @generated
404             */
405            public void setPredicate(Predicate newPredicate) {
406                    if (newPredicate != predicate) {
407                            NotificationChain msgs = null;
408                            if (predicate != null)
409                                    msgs = ((InternalEObject)predicate).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - SnapshotPackage.PREDICATE_NODE__PREDICATE, null, msgs);
410                            if (newPredicate != null)
411                                    msgs = ((InternalEObject)newPredicate).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - SnapshotPackage.PREDICATE_NODE__PREDICATE, null, msgs);
412                            msgs = basicSetPredicate(newPredicate, msgs);
413                            if (msgs != null) msgs.dispatch();
414                    }
415                    else if (eNotificationRequired())
416                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.PREDICATE_NODE__PREDICATE, newPredicate, newPredicate));
417            }
418    
419            /**
420             * <!-- begin-user-doc -->
421             * <!-- end-user-doc -->
422             * @generated
423             */
424            @Override
425            public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
426                    switch (featureID) {
427                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
428                                    if (eInternalContainer() != null)
429                                            msgs = eBasicRemoveFromContainer(msgs);
430                                    return basicSetSnapshot((Snapshot)otherEnd, msgs);
431                    }
432                    return super.eInverseAdd(otherEnd, featureID, msgs);
433            }
434    
435            /**
436             * <!-- begin-user-doc -->
437             * <!-- end-user-doc -->
438             * @generated
439             */
440            @Override
441            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
442                    switch (featureID) {
443                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
444                                    return basicSetSnapshot(null, msgs);
445                            case SnapshotPackage.PREDICATE_NODE__PREDICATE:
446                                    return basicSetPredicate(null, msgs);
447                    }
448                    return super.eInverseRemove(otherEnd, featureID, msgs);
449            }
450    
451            /**
452             * <!-- begin-user-doc -->
453             * <!-- end-user-doc -->
454             * @generated
455             */
456            @Override
457            public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
458                    switch (eContainerFeatureID()) {
459                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
460                                    return eInternalContainer().eInverseRemove(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
461                    }
462                    return super.eBasicRemoveFromContainerFeature(msgs);
463            }
464    
465            /**
466             * <!-- begin-user-doc -->
467             * <!-- end-user-doc -->
468             * @generated
469             */
470            @Override
471            public Object eGet(int featureID, boolean resolve, boolean coreType) {
472                    switch (featureID) {
473                            case SnapshotPackage.PREDICATE_NODE__ID:
474                                    return getId();
475                            case SnapshotPackage.PREDICATE_NODE__NAME:
476                                    return getName();
477                            case SnapshotPackage.PREDICATE_NODE__DETAILS:
478                                    return getDetails();
479                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
480                                    return getSnapshot();
481                            case SnapshotPackage.PREDICATE_NODE__TRUE_OUTPUTS:
482                                    return getTrueOutputs();
483                            case SnapshotPackage.PREDICATE_NODE__FALSE_OUTPUTS:
484                                    return getFalseOutputs();
485                            case SnapshotPackage.PREDICATE_NODE__TRUE_CHILDREN:
486                                    return getTrueChildren();
487                            case SnapshotPackage.PREDICATE_NODE__FALSE_CHILDREN:
488                                    return getFalseChildren();
489                            case SnapshotPackage.PREDICATE_NODE__IS_ROOT:
490                                    return isIsRoot();
491                            case SnapshotPackage.PREDICATE_NODE__PREDICATE:
492                                    return getPredicate();
493                    }
494                    return super.eGet(featureID, resolve, coreType);
495            }
496    
497            /**
498             * <!-- begin-user-doc -->
499             * <!-- end-user-doc -->
500             * @generated
501             */
502            @SuppressWarnings("unchecked")
503            @Override
504            public void eSet(int featureID, Object newValue) {
505                    switch (featureID) {
506                            case SnapshotPackage.PREDICATE_NODE__ID:
507                                    setId((String)newValue);
508                                    return;
509                            case SnapshotPackage.PREDICATE_NODE__NAME:
510                                    setName((String)newValue);
511                                    return;
512                            case SnapshotPackage.PREDICATE_NODE__DETAILS:
513                                    setDetails((String)newValue);
514                                    return;
515                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
516                                    setSnapshot((Snapshot)newValue);
517                                    return;
518                            case SnapshotPackage.PREDICATE_NODE__TRUE_OUTPUTS:
519                                    getTrueOutputs().clear();
520                                    getTrueOutputs().addAll((Collection<? extends PredicateNodeOutput>)newValue);
521                                    return;
522                            case SnapshotPackage.PREDICATE_NODE__FALSE_OUTPUTS:
523                                    getFalseOutputs().clear();
524                                    getFalseOutputs().addAll((Collection<? extends PredicateNodeOutput>)newValue);
525                                    return;
526                            case SnapshotPackage.PREDICATE_NODE__TRUE_CHILDREN:
527                                    getTrueChildren().clear();
528                                    getTrueChildren().addAll((Collection<? extends PredicateNode>)newValue);
529                                    return;
530                            case SnapshotPackage.PREDICATE_NODE__FALSE_CHILDREN:
531                                    getFalseChildren().clear();
532                                    getFalseChildren().addAll((Collection<? extends PredicateNode>)newValue);
533                                    return;
534                            case SnapshotPackage.PREDICATE_NODE__IS_ROOT:
535                                    setIsRoot((Boolean)newValue);
536                                    return;
537                            case SnapshotPackage.PREDICATE_NODE__PREDICATE:
538                                    setPredicate((Predicate)newValue);
539                                    return;
540                    }
541                    super.eSet(featureID, newValue);
542            }
543    
544            /**
545             * <!-- begin-user-doc -->
546             * <!-- end-user-doc -->
547             * @generated
548             */
549            @Override
550            public void eUnset(int featureID) {
551                    switch (featureID) {
552                            case SnapshotPackage.PREDICATE_NODE__ID:
553                                    setId(ID_EDEFAULT);
554                                    return;
555                            case SnapshotPackage.PREDICATE_NODE__NAME:
556                                    setName(NAME_EDEFAULT);
557                                    return;
558                            case SnapshotPackage.PREDICATE_NODE__DETAILS:
559                                    setDetails(DETAILS_EDEFAULT);
560                                    return;
561                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
562                                    setSnapshot((Snapshot)null);
563                                    return;
564                            case SnapshotPackage.PREDICATE_NODE__TRUE_OUTPUTS:
565                                    getTrueOutputs().clear();
566                                    return;
567                            case SnapshotPackage.PREDICATE_NODE__FALSE_OUTPUTS:
568                                    getFalseOutputs().clear();
569                                    return;
570                            case SnapshotPackage.PREDICATE_NODE__TRUE_CHILDREN:
571                                    getTrueChildren().clear();
572                                    return;
573                            case SnapshotPackage.PREDICATE_NODE__FALSE_CHILDREN:
574                                    getFalseChildren().clear();
575                                    return;
576                            case SnapshotPackage.PREDICATE_NODE__IS_ROOT:
577                                    setIsRoot(IS_ROOT_EDEFAULT);
578                                    return;
579                            case SnapshotPackage.PREDICATE_NODE__PREDICATE:
580                                    setPredicate((Predicate)null);
581                                    return;
582                    }
583                    super.eUnset(featureID);
584            }
585    
586            /**
587             * <!-- begin-user-doc -->
588             * <!-- end-user-doc -->
589             * @generated
590             */
591            @Override
592            public boolean eIsSet(int featureID) {
593                    switch (featureID) {
594                            case SnapshotPackage.PREDICATE_NODE__ID:
595                                    return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
596                            case SnapshotPackage.PREDICATE_NODE__NAME:
597                                    return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
598                            case SnapshotPackage.PREDICATE_NODE__DETAILS:
599                                    return DETAILS_EDEFAULT == null ? details != null : !DETAILS_EDEFAULT.equals(details);
600                            case SnapshotPackage.PREDICATE_NODE__SNAPSHOT:
601                                    return getSnapshot() != null;
602                            case SnapshotPackage.PREDICATE_NODE__TRUE_OUTPUTS:
603                                    return trueOutputs != null && !trueOutputs.isEmpty();
604                            case SnapshotPackage.PREDICATE_NODE__FALSE_OUTPUTS:
605                                    return falseOutputs != null && !falseOutputs.isEmpty();
606                            case SnapshotPackage.PREDICATE_NODE__TRUE_CHILDREN:
607                                    return trueChildren != null && !trueChildren.isEmpty();
608                            case SnapshotPackage.PREDICATE_NODE__FALSE_CHILDREN:
609                                    return falseChildren != null && !falseChildren.isEmpty();
610                            case SnapshotPackage.PREDICATE_NODE__IS_ROOT:
611                                    return isRoot != IS_ROOT_EDEFAULT;
612                            case SnapshotPackage.PREDICATE_NODE__PREDICATE:
613                                    return predicate != null;
614                    }
615                    return super.eIsSet(featureID);
616            }
617    
618            /**
619             * <!-- begin-user-doc -->
620             * <!-- end-user-doc -->
621             * @generated
622             */
623            @Override
624            public String toString() {
625                    if (eIsProxy()) return super.toString();
626    
627                    StringBuffer result = new StringBuffer(super.toString());
628                    result.append(" (id: ");
629                    result.append(id);
630                    result.append(", name: ");
631                    result.append(name);
632                    result.append(", details: ");
633                    result.append(details);
634                    result.append(", isRoot: ");
635                    result.append(isRoot);
636                    result.append(')');
637                    return result.toString();
638            }
639    
640    } //PredicateNodeImpl