001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.party.impl;
008    
009    import java.util.Collection;
010    import java.util.concurrent.atomic.AtomicInteger;
011    
012    import org.eclipse.emf.common.notify.Notification;
013    import org.eclipse.emf.common.notify.NotificationChain;
014    import org.eclipse.emf.common.util.BasicEList;
015    import org.eclipse.emf.common.util.EList;
016    import org.eclipse.emf.ecore.EClass;
017    import org.eclipse.emf.ecore.InternalEObject;
018    import org.eclipse.emf.ecore.impl.ENotificationImpl;
019    import org.eclipse.emf.ecore.impl.EObjectImpl;
020    import org.eclipse.emf.ecore.util.EObjectContainmentEList;
021    import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
022    import org.eclipse.emf.ecore.util.EObjectResolvingEList;
023    import org.eclipse.emf.ecore.util.EcoreUtil;
024    import org.eclipse.emf.ecore.util.InternalEList;
025    
026    import com.hammurapi.party.ContactInfo;
027    import com.hammurapi.party.Identity;
028    import com.hammurapi.party.MatrixRelationship;
029    import com.hammurapi.party.Organization;
030    import com.hammurapi.party.Party;
031    import com.hammurapi.party.PartyPackage;
032    import com.hammurapi.party.Tag;
033    
034    /**
035     * <!-- begin-user-doc -->
036     * An implementation of the model object '<em><b>Organization</b></em>'.
037     * <!-- end-user-doc -->
038     * <p>
039     * The following features are implemented:
040     * <ul>
041     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getTags <em>Tags</em>}</li>
042     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getComment <em>Comment</em>}</li>
043     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getContactInfo <em>Contact Info</em>}</li>
044     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getIdentity <em>Identity</em>}</li>
045     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getParent <em>Parent</em>}</li>
046     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getName <em>Name</em>}</li>
047     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getUid <em>Uid</em>}</li>
048     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getChildren <em>Children</em>}</li>
049     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getExternalChildren <em>External Children</em>}</li>
050     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getOrganizationType <em>Organization Type</em>}</li>
051     *   <li>{@link com.hammurapi.party.impl.OrganizationImpl#getMatrixedChildren <em>Matrixed Children</em>}</li>
052     * </ul>
053     * </p>
054     *
055     * @generated
056     */
057    public class OrganizationImpl extends EObjectImpl implements Organization {
058            /**
059             * The cached value of the '{@link #getTags() <em>Tags</em>}' containment reference list.
060             * <!-- begin-user-doc -->
061             * <!-- end-user-doc -->
062             * @see #getTags()
063             * @generated
064             * @ordered
065             */
066            protected EList<Tag> tags;
067    
068            /**
069             * The default value of the '{@link #getComment() <em>Comment</em>}' attribute.
070             * <!-- begin-user-doc -->
071             * <!-- end-user-doc -->
072             * @see #getComment()
073             * @generated
074             * @ordered
075             */
076            protected static final String COMMENT_EDEFAULT = null;
077    
078            /**
079             * The cached value of the '{@link #getComment() <em>Comment</em>}' attribute.
080             * <!-- begin-user-doc -->
081             * <!-- end-user-doc -->
082             * @see #getComment()
083             * @generated
084             * @ordered
085             */
086            protected String comment = COMMENT_EDEFAULT;
087    
088            /**
089             * The cached value of the '{@link #getContactInfo() <em>Contact Info</em>}' containment reference list.
090             * <!-- begin-user-doc -->
091             * <!-- end-user-doc -->
092             * @see #getContactInfo()
093             * @generated
094             * @ordered
095             */
096            protected EList<ContactInfo> contactInfo;
097    
098            /**
099             * The cached value of the '{@link #getIdentity() <em>Identity</em>}' containment reference list.
100             * <!-- begin-user-doc -->
101             * <!-- end-user-doc -->
102             * @see #getIdentity()
103             * @generated
104             * @ordered
105             */
106            protected EList<Identity> identity;
107    
108            /**
109             * The default value of the '{@link #getName() <em>Name</em>}' attribute.
110             * <!-- begin-user-doc -->
111             * <!-- end-user-doc -->
112             * @see #getName()
113             * @generated
114             * @ordered
115             */
116            protected static final String NAME_EDEFAULT = null;
117    
118            /**
119             * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
120             * <!-- begin-user-doc -->
121             * <!-- end-user-doc -->
122             * @see #getName()
123             * @generated
124             * @ordered
125             */
126            protected String name = NAME_EDEFAULT;
127    
128            /**
129             * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
130             * <!-- begin-user-doc -->
131             * <!-- end-user-doc -->
132             * @see #getUid()
133             * @generated
134             * @ordered
135             */
136            protected static final String UID_EDEFAULT = null;
137    
138            /**
139             * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
140             * <!-- begin-user-doc -->
141             * <!-- end-user-doc -->
142             * @see #getUid()
143             * @generated
144             * @ordered
145             */
146            protected String uid = UID_EDEFAULT;
147    
148            /**
149             * The cached value of the '{@link #getChildren() <em>Children</em>}' containment reference list.
150             * <!-- begin-user-doc -->
151             * <!-- end-user-doc -->
152             * @see #getChildren()
153             * @generated
154             * @ordered
155             */
156            protected EList<Party> children;
157    
158            /**
159             * The cached value of the '{@link #getExternalChildren() <em>External Children</em>}' reference list.
160             * <!-- begin-user-doc -->
161             * <!-- end-user-doc -->
162             * @see #getExternalChildren()
163             * @generated
164             * @ordered
165             */
166            protected EList<Party> externalChildren;
167    
168            /**
169             * The default value of the '{@link #getOrganizationType() <em>Organization Type</em>}' attribute.
170             * <!-- begin-user-doc -->
171             * <!-- end-user-doc -->
172             * @see #getOrganizationType()
173             * @generated
174             * @ordered
175             */
176            protected static final String ORGANIZATION_TYPE_EDEFAULT = null;
177    
178            /**
179             * The cached value of the '{@link #getOrganizationType() <em>Organization Type</em>}' attribute.
180             * <!-- begin-user-doc -->
181             * <!-- end-user-doc -->
182             * @see #getOrganizationType()
183             * @generated
184             * @ordered
185             */
186            protected String organizationType = ORGANIZATION_TYPE_EDEFAULT;
187    
188            /**
189             * The cached value of the '{@link #getMatrixedChildren() <em>Matrixed Children</em>}' containment reference list.
190             * <!-- begin-user-doc -->
191             * <!-- end-user-doc -->
192             * @see #getMatrixedChildren()
193             * @generated
194             * @ordered
195             */
196            protected EList<MatrixRelationship> matrixedChildren;
197    
198            private Organization externalParent;
199            
200            private static AtomicInteger counter = new AtomicInteger();
201    
202            /**
203             * <!-- begin-user-doc -->
204             * <!-- end-user-doc -->
205             * @generated NOT
206             */
207            protected OrganizationImpl() {
208                    super();
209                    if (getUid()==null) {
210                            setUid("ORG-"+Integer.toString(counter.incrementAndGet(), Character.MAX_RADIX)+"-"+Long.toString(System.currentTimeMillis(), Character.MAX_RADIX));
211                    }
212            }
213    
214            /**
215             * <!-- begin-user-doc -->
216             * <!-- end-user-doc -->
217             * @generated
218             */
219            @Override
220            protected EClass eStaticClass() {
221                    return PartyPackage.Literals.ORGANIZATION;
222            }
223    
224            /**
225             * <!-- begin-user-doc -->
226             * <!-- end-user-doc -->
227             * @generated
228             */
229            public EList<Tag> getTags() {
230                    if (tags == null) {
231                            tags = new EObjectContainmentEList<Tag>(Tag.class, this, PartyPackage.ORGANIZATION__TAGS);
232                    }
233                    return tags;
234            }
235    
236            /**
237             * <!-- begin-user-doc -->
238             * <!-- end-user-doc -->
239             * @generated
240             */
241            public String getComment() {
242                    return comment;
243            }
244    
245            /**
246             * <!-- begin-user-doc -->
247             * <!-- end-user-doc -->
248             * @generated
249             */
250            public void setComment(String newComment) {
251                    String oldComment = comment;
252                    comment = newComment;
253                    if (eNotificationRequired())
254                            eNotify(new ENotificationImpl(this, Notification.SET, PartyPackage.ORGANIZATION__COMMENT, oldComment, comment));
255            }
256    
257            /**
258             * <!-- begin-user-doc -->
259             * <!-- end-user-doc -->
260             * @generated
261             */
262            public EList<ContactInfo> getContactInfo() {
263                    if (contactInfo == null) {
264                            contactInfo = new EObjectContainmentWithInverseEList<ContactInfo>(ContactInfo.class, this, PartyPackage.ORGANIZATION__CONTACT_INFO, PartyPackage.CONTACT_INFO__OWNER);
265                    }
266                    return contactInfo;
267            }
268    
269            /**
270             * <!-- begin-user-doc -->
271             * <!-- end-user-doc -->
272             * @generated
273             */
274            public EList<Identity> getIdentity() {
275                    if (identity == null) {
276                            identity = new EObjectContainmentEList<Identity>(Identity.class, this, PartyPackage.ORGANIZATION__IDENTITY);
277                    }
278                    return identity;
279            }
280    
281            /**
282             * <!-- begin-user-doc -->
283             * <!-- end-user-doc -->
284             * @generated
285             */
286            public Organization getParent() {
287                    if (eContainerFeatureID() != PartyPackage.ORGANIZATION__PARENT) return null;
288                    return (Organization)eContainer();
289            }
290    
291            /**
292             * <!-- begin-user-doc -->
293             * <!-- end-user-doc -->
294             * @generated
295             */
296            public NotificationChain basicSetParent(Organization newParent, NotificationChain msgs) {
297                    msgs = eBasicSetContainer((InternalEObject)newParent, PartyPackage.ORGANIZATION__PARENT, msgs);
298                    return msgs;
299            }
300    
301            /**
302             * <!-- begin-user-doc -->
303             * <!-- end-user-doc -->
304             * @generated
305             */
306            public void setParent(Organization newParent) {
307                    if (newParent != eInternalContainer() || (eContainerFeatureID() != PartyPackage.ORGANIZATION__PARENT && newParent != null)) {
308                            if (EcoreUtil.isAncestor(this, newParent))
309                                    throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
310                            NotificationChain msgs = null;
311                            if (eInternalContainer() != null)
312                                    msgs = eBasicRemoveFromContainer(msgs);
313                            if (newParent != null)
314                                    msgs = ((InternalEObject)newParent).eInverseAdd(this, PartyPackage.ORGANIZATION__CHILDREN, Organization.class, msgs);
315                            msgs = basicSetParent(newParent, msgs);
316                            if (msgs != null) msgs.dispatch();
317                    }
318                    else if (eNotificationRequired())
319                            eNotify(new ENotificationImpl(this, Notification.SET, PartyPackage.ORGANIZATION__PARENT, newParent, newParent));
320            }
321    
322            /**
323             * <!-- begin-user-doc -->
324             * <!-- end-user-doc -->
325             * @generated
326             */
327            public String getName() {
328                    return name;
329            }
330    
331            /**
332             * <!-- begin-user-doc -->
333             * <!-- end-user-doc -->
334             * @generated
335             */
336            public void setName(String newName) {
337                    String oldName = name;
338                    name = newName;
339                    if (eNotificationRequired())
340                            eNotify(new ENotificationImpl(this, Notification.SET, PartyPackage.ORGANIZATION__NAME, oldName, name));
341            }
342    
343            /**
344             * <!-- begin-user-doc -->
345             * <!-- end-user-doc -->
346             * @generated
347             */
348            public String getUid() {
349                    return uid;
350            }
351    
352            /**
353             * <!-- begin-user-doc -->
354             * <!-- end-user-doc -->
355             * @generated
356             */
357            public void setUid(String newUid) {
358                    String oldUid = uid;
359                    uid = newUid;
360                    if (eNotificationRequired())
361                            eNotify(new ENotificationImpl(this, Notification.SET, PartyPackage.ORGANIZATION__UID, oldUid, uid));
362            }
363    
364            /**
365             * <!-- begin-user-doc -->
366             * <!-- end-user-doc -->
367             * @generated
368             */
369            public EList<MatrixRelationship> getMatrixedChildren() {
370                    if (matrixedChildren == null) {
371                            matrixedChildren = new EObjectContainmentEList<MatrixRelationship>(MatrixRelationship.class, this, PartyPackage.ORGANIZATION__MATRIXED_CHILDREN);
372                    }
373                    return matrixedChildren;
374            }
375    
376            /**
377             * <!-- begin-user-doc -->
378             * <!-- end-user-doc -->
379             * @generated
380             */
381            public EList<Party> getChildren() {
382                    if (children == null) {
383                            children = new EObjectContainmentWithInverseEList<Party>(Party.class, this, PartyPackage.ORGANIZATION__CHILDREN, PartyPackage.PARTY__PARENT);
384                    }
385                    return children;
386            }
387    
388            /**
389             * <!-- begin-user-doc -->
390             * <!-- end-user-doc -->
391             * @generated
392             */
393            public EList<Party> getExternalChildren() {
394                    if (externalChildren == null) {
395                            externalChildren = new EObjectResolvingEList<Party>(Party.class, this, PartyPackage.ORGANIZATION__EXTERNAL_CHILDREN);
396                    }
397                    return externalChildren;
398            }
399    
400            /**
401             * <!-- begin-user-doc -->
402             * <!-- end-user-doc -->
403             * @generated
404             */
405            public String getOrganizationType() {
406                    return organizationType;
407            }
408    
409            /**
410             * <!-- begin-user-doc -->
411             * <!-- end-user-doc -->
412             * @generated
413             */
414            public void setOrganizationType(String newOrganizationType) {
415                    String oldOrganizationType = organizationType;
416                    organizationType = newOrganizationType;
417                    if (eNotificationRequired())
418                            eNotify(new ENotificationImpl(this, Notification.SET, PartyPackage.ORGANIZATION__ORGANIZATION_TYPE, oldOrganizationType, organizationType));
419            }
420    
421            /**
422             * <!-- begin-user-doc -->
423             * <!-- end-user-doc -->
424             * @generated NOT
425             */
426            public EList<Party> getPath() {
427                    EList<Party> ret;
428                    if (getParent()!=null) {
429                            ret = getParent().getPath();
430                    } else if (externalParent!=null) {
431                            ret = externalParent.getPath();
432                    } else {
433                            ret = new BasicEList<Party>();
434                    }
435                    ret.add(this);
436                    return ret;
437            }
438    
439            /**
440             * <!-- begin-user-doc -->
441             * <!-- end-user-doc -->
442             * @generated NOT
443             */
444            public void setExternalParent(Organization externalParent) {
445                    this.externalParent = externalParent;
446            }
447    
448            /**
449             * <!-- begin-user-doc -->
450             * <!-- end-user-doc -->
451             * @generated
452             */
453            @SuppressWarnings("unchecked")
454            @Override
455            public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
456                    switch (featureID) {
457                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
458                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getContactInfo()).basicAdd(otherEnd, msgs);
459                            case PartyPackage.ORGANIZATION__PARENT:
460                                    if (eInternalContainer() != null)
461                                            msgs = eBasicRemoveFromContainer(msgs);
462                                    return basicSetParent((Organization)otherEnd, msgs);
463                            case PartyPackage.ORGANIZATION__CHILDREN:
464                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildren()).basicAdd(otherEnd, msgs);
465                    }
466                    return super.eInverseAdd(otherEnd, featureID, msgs);
467            }
468    
469            /**
470             * <!-- begin-user-doc -->
471             * <!-- end-user-doc -->
472             * @generated
473             */
474            @Override
475            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
476                    switch (featureID) {
477                            case PartyPackage.ORGANIZATION__TAGS:
478                                    return ((InternalEList<?>)getTags()).basicRemove(otherEnd, msgs);
479                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
480                                    return ((InternalEList<?>)getContactInfo()).basicRemove(otherEnd, msgs);
481                            case PartyPackage.ORGANIZATION__IDENTITY:
482                                    return ((InternalEList<?>)getIdentity()).basicRemove(otherEnd, msgs);
483                            case PartyPackage.ORGANIZATION__PARENT:
484                                    return basicSetParent(null, msgs);
485                            case PartyPackage.ORGANIZATION__CHILDREN:
486                                    return ((InternalEList<?>)getChildren()).basicRemove(otherEnd, msgs);
487                            case PartyPackage.ORGANIZATION__MATRIXED_CHILDREN:
488                                    return ((InternalEList<?>)getMatrixedChildren()).basicRemove(otherEnd, msgs);
489                    }
490                    return super.eInverseRemove(otherEnd, featureID, msgs);
491            }
492    
493            /**
494             * <!-- begin-user-doc -->
495             * <!-- end-user-doc -->
496             * @generated
497             */
498            @Override
499            public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
500                    switch (eContainerFeatureID()) {
501                            case PartyPackage.ORGANIZATION__PARENT:
502                                    return eInternalContainer().eInverseRemove(this, PartyPackage.ORGANIZATION__CHILDREN, Organization.class, msgs);
503                    }
504                    return super.eBasicRemoveFromContainerFeature(msgs);
505            }
506    
507            /**
508             * <!-- begin-user-doc -->
509             * <!-- end-user-doc -->
510             * @generated
511             */
512            @Override
513            public Object eGet(int featureID, boolean resolve, boolean coreType) {
514                    switch (featureID) {
515                            case PartyPackage.ORGANIZATION__TAGS:
516                                    return getTags();
517                            case PartyPackage.ORGANIZATION__COMMENT:
518                                    return getComment();
519                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
520                                    return getContactInfo();
521                            case PartyPackage.ORGANIZATION__IDENTITY:
522                                    return getIdentity();
523                            case PartyPackage.ORGANIZATION__PARENT:
524                                    return getParent();
525                            case PartyPackage.ORGANIZATION__NAME:
526                                    return getName();
527                            case PartyPackage.ORGANIZATION__UID:
528                                    return getUid();
529                            case PartyPackage.ORGANIZATION__CHILDREN:
530                                    return getChildren();
531                            case PartyPackage.ORGANIZATION__EXTERNAL_CHILDREN:
532                                    return getExternalChildren();
533                            case PartyPackage.ORGANIZATION__ORGANIZATION_TYPE:
534                                    return getOrganizationType();
535                            case PartyPackage.ORGANIZATION__MATRIXED_CHILDREN:
536                                    return getMatrixedChildren();
537                    }
538                    return super.eGet(featureID, resolve, coreType);
539            }
540    
541            /**
542             * <!-- begin-user-doc -->
543             * <!-- end-user-doc -->
544             * @generated
545             */
546            @SuppressWarnings("unchecked")
547            @Override
548            public void eSet(int featureID, Object newValue) {
549                    switch (featureID) {
550                            case PartyPackage.ORGANIZATION__TAGS:
551                                    getTags().clear();
552                                    getTags().addAll((Collection<? extends Tag>)newValue);
553                                    return;
554                            case PartyPackage.ORGANIZATION__COMMENT:
555                                    setComment((String)newValue);
556                                    return;
557                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
558                                    getContactInfo().clear();
559                                    getContactInfo().addAll((Collection<? extends ContactInfo>)newValue);
560                                    return;
561                            case PartyPackage.ORGANIZATION__IDENTITY:
562                                    getIdentity().clear();
563                                    getIdentity().addAll((Collection<? extends Identity>)newValue);
564                                    return;
565                            case PartyPackage.ORGANIZATION__PARENT:
566                                    setParent((Organization)newValue);
567                                    return;
568                            case PartyPackage.ORGANIZATION__NAME:
569                                    setName((String)newValue);
570                                    return;
571                            case PartyPackage.ORGANIZATION__UID:
572                                    setUid((String)newValue);
573                                    return;
574                            case PartyPackage.ORGANIZATION__CHILDREN:
575                                    getChildren().clear();
576                                    getChildren().addAll((Collection<? extends Party>)newValue);
577                                    return;
578                            case PartyPackage.ORGANIZATION__EXTERNAL_CHILDREN:
579                                    getExternalChildren().clear();
580                                    getExternalChildren().addAll((Collection<? extends Party>)newValue);
581                                    return;
582                            case PartyPackage.ORGANIZATION__ORGANIZATION_TYPE:
583                                    setOrganizationType((String)newValue);
584                                    return;
585                            case PartyPackage.ORGANIZATION__MATRIXED_CHILDREN:
586                                    getMatrixedChildren().clear();
587                                    getMatrixedChildren().addAll((Collection<? extends MatrixRelationship>)newValue);
588                                    return;
589                    }
590                    super.eSet(featureID, newValue);
591            }
592    
593            /**
594             * <!-- begin-user-doc -->
595             * <!-- end-user-doc -->
596             * @generated
597             */
598            @Override
599            public void eUnset(int featureID) {
600                    switch (featureID) {
601                            case PartyPackage.ORGANIZATION__TAGS:
602                                    getTags().clear();
603                                    return;
604                            case PartyPackage.ORGANIZATION__COMMENT:
605                                    setComment(COMMENT_EDEFAULT);
606                                    return;
607                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
608                                    getContactInfo().clear();
609                                    return;
610                            case PartyPackage.ORGANIZATION__IDENTITY:
611                                    getIdentity().clear();
612                                    return;
613                            case PartyPackage.ORGANIZATION__PARENT:
614                                    setParent((Organization)null);
615                                    return;
616                            case PartyPackage.ORGANIZATION__NAME:
617                                    setName(NAME_EDEFAULT);
618                                    return;
619                            case PartyPackage.ORGANIZATION__UID:
620                                    setUid(UID_EDEFAULT);
621                                    return;
622                            case PartyPackage.ORGANIZATION__CHILDREN:
623                                    getChildren().clear();
624                                    return;
625                            case PartyPackage.ORGANIZATION__EXTERNAL_CHILDREN:
626                                    getExternalChildren().clear();
627                                    return;
628                            case PartyPackage.ORGANIZATION__ORGANIZATION_TYPE:
629                                    setOrganizationType(ORGANIZATION_TYPE_EDEFAULT);
630                                    return;
631                            case PartyPackage.ORGANIZATION__MATRIXED_CHILDREN:
632                                    getMatrixedChildren().clear();
633                                    return;
634                    }
635                    super.eUnset(featureID);
636            }
637    
638            /**
639             * <!-- begin-user-doc -->
640             * <!-- end-user-doc -->
641             * @generated
642             */
643            @Override
644            public boolean eIsSet(int featureID) {
645                    switch (featureID) {
646                            case PartyPackage.ORGANIZATION__TAGS:
647                                    return tags != null && !tags.isEmpty();
648                            case PartyPackage.ORGANIZATION__COMMENT:
649                                    return COMMENT_EDEFAULT == null ? comment != null : !COMMENT_EDEFAULT.equals(comment);
650                            case PartyPackage.ORGANIZATION__CONTACT_INFO:
651                                    return contactInfo != null && !contactInfo.isEmpty();
652                            case PartyPackage.ORGANIZATION__IDENTITY:
653                                    return identity != null && !identity.isEmpty();
654                            case PartyPackage.ORGANIZATION__PARENT:
655                                    return getParent() != null;
656                            case PartyPackage.ORGANIZATION__NAME:
657                                    return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
658                            case PartyPackage.ORGANIZATION__UID:
659                                    return UID_EDEFAULT == null ? uid != null : !UID_EDEFAULT.equals(uid);
660                            case PartyPackage.ORGANIZATION__CHILDREN:
661                                    return children != null && !children.isEmpty();
662                            case PartyPackage.ORGANIZATION__EXTERNAL_CHILDREN:
663                                    return externalChildren != null && !externalChildren.isEmpty();
664                            case PartyPackage.ORGANIZATION__ORGANIZATION_TYPE:
665                                    return ORGANIZATION_TYPE_EDEFAULT == null ? organizationType != null : !ORGANIZATION_TYPE_EDEFAULT.equals(organizationType);
666                            case PartyPackage.ORGANIZATION__MATRIXED_CHILDREN:
667                                    return matrixedChildren != null && !matrixedChildren.isEmpty();
668                    }
669                    return super.eIsSet(featureID);
670            }
671    
672            /**
673             * <!-- begin-user-doc -->
674             * <!-- end-user-doc -->
675             * @generated
676             */
677            @Override
678            public String toString() {
679                    if (eIsProxy()) return super.toString();
680    
681                    StringBuffer result = new StringBuffer(super.toString());
682                    result.append(" (comment: ");
683                    result.append(comment);
684                    result.append(", name: ");
685                    result.append(name);
686                    result.append(", uid: ");
687                    result.append(uid);
688                    result.append(", organizationType: ");
689                    result.append(organizationType);
690                    result.append(')');
691                    return result.toString();
692            }
693    
694    } //OrganizationImpl