001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.party;
008    
009    import org.eclipse.emf.common.util.EList;
010    
011    /**
012     * <!-- begin-user-doc -->
013     * A representation of the model object '<em><b>Party</b></em>'.
014     * <!-- end-user-doc -->
015     *
016     * <!-- begin-model-doc -->
017     * Party.
018     * <!-- end-model-doc -->
019     *
020     * <p>
021     * The following features are supported:
022     * <ul>
023     *   <li>{@link com.hammurapi.party.Party#getContactInfo <em>Contact Info</em>}</li>
024     *   <li>{@link com.hammurapi.party.Party#getIdentity <em>Identity</em>}</li>
025     *   <li>{@link com.hammurapi.party.Party#getParent <em>Parent</em>}</li>
026     *   <li>{@link com.hammurapi.party.Party#getName <em>Name</em>}</li>
027     *   <li>{@link com.hammurapi.party.Party#getUid <em>Uid</em>}</li>
028     * </ul>
029     * </p>
030     *
031     * @see com.hammurapi.party.PartyPackage#getParty()
032     * @model interface="true" abstract="true"
033     * @generated
034     */
035    public interface Party extends Tagged {
036            /**
037             * Returns the value of the '<em><b>Contact Info</b></em>' containment reference list.
038             * The list contents are of type {@link com.hammurapi.party.ContactInfo}.
039             * It is bidirectional and its opposite is '{@link com.hammurapi.party.ContactInfo#getOwner <em>Owner</em>}'.
040             * <!-- begin-user-doc -->
041             * <!-- end-user-doc -->
042             * <!-- begin-model-doc -->
043             * Party has zero or more contacts.
044             * <!-- end-model-doc -->
045             * @return the value of the '<em>Contact Info</em>' containment reference list.
046             * @see com.hammurapi.party.PartyPackage#getParty_ContactInfo()
047             * @see com.hammurapi.party.ContactInfo#getOwner
048             * @model opposite="owner" containment="true"
049             * @generated
050             */
051            EList<ContactInfo> getContactInfo();
052    
053            /**
054             * Returns the value of the '<em><b>Identity</b></em>' containment reference list.
055             * The list contents are of type {@link com.hammurapi.party.Identity}.
056             * <!-- begin-user-doc -->
057             * <!-- end-user-doc -->
058             * <!-- begin-model-doc -->
059             * Party can have identitie, e.g. taxpayer ID, internal employee number, department number.
060             * <!-- end-model-doc -->
061             * @return the value of the '<em>Identity</em>' containment reference list.
062             * @see com.hammurapi.party.PartyPackage#getParty_Identity()
063             * @model containment="true"
064             * @generated
065             */
066            EList<Identity> getIdentity();
067    
068            /**
069             * Returns the value of the '<em><b>Parent</b></em>' container reference.
070             * It is bidirectional and its opposite is '{@link com.hammurapi.party.Organization#getChildren <em>Children</em>}'.
071             * <!-- begin-user-doc -->
072             * <!-- end-user-doc -->
073             * <!-- begin-model-doc -->
074             * Parties can be nested.
075             * <!-- end-model-doc -->
076             * @return the value of the '<em>Parent</em>' container reference.
077             * @see #setParent(Organization)
078             * @see com.hammurapi.party.PartyPackage#getParty_Parent()
079             * @see com.hammurapi.party.Organization#getChildren
080             * @model opposite="children" transient="false"
081             * @generated
082             */
083            Organization getParent();
084    
085            /**
086             * Sets the value of the '{@link com.hammurapi.party.Party#getParent <em>Parent</em>}' container reference.
087             * <!-- begin-user-doc -->
088             * <!-- end-user-doc -->
089             * @param value the new value of the '<em>Parent</em>' container reference.
090             * @see #getParent()
091             * @generated
092             */
093            void setParent(Organization value);
094    
095            /**
096             * Returns the value of the '<em><b>Name</b></em>' attribute.
097             * <!-- begin-user-doc -->
098             * <!-- end-user-doc -->
099             * <!-- begin-model-doc -->
100             * Party name.
101             * <!-- end-model-doc -->
102             * @return the value of the '<em>Name</em>' attribute.
103             * @see #setName(String)
104             * @see com.hammurapi.party.PartyPackage#getParty_Name()
105             * @model required="true"
106             * @generated
107             */
108            String getName();
109    
110            /**
111             * Sets the value of the '{@link com.hammurapi.party.Party#getName <em>Name</em>}' attribute.
112             * <!-- begin-user-doc -->
113             * <!-- end-user-doc -->
114             * @param value the new value of the '<em>Name</em>' attribute.
115             * @see #getName()
116             * @generated
117             */
118            void setName(String value);
119    
120            /**
121             * Returns the value of the '<em><b>Uid</b></em>' attribute.
122             * <!-- begin-user-doc -->
123             * <!-- end-user-doc -->
124             * <!-- begin-model-doc -->
125             * Unique party ID for referencing. It can be one of party identities.
126             * <!-- end-model-doc -->
127             * @return the value of the '<em>Uid</em>' attribute.
128             * @see #setUid(String)
129             * @see com.hammurapi.party.PartyPackage#getParty_Uid()
130             * @model id="true"
131             * @generated
132             */
133            String getUid();
134    
135            /**
136             * Sets the value of the '{@link com.hammurapi.party.Party#getUid <em>Uid</em>}' attribute.
137             * <!-- begin-user-doc -->
138             * <!-- end-user-doc -->
139             * @param value the new value of the '<em>Uid</em>' attribute.
140             * @see #getUid()
141             * @generated
142             */
143            void setUid(String value);
144    
145            /**
146             * <!-- begin-user-doc -->
147             * <!-- end-user-doc -->
148             * <!-- begin-model-doc -->
149             * Party's path in the hierarchy.
150             * <!-- end-model-doc -->
151             * @model kind="operation"
152             * @generated
153             */
154            EList<Party> getPath();
155    
156            /**
157             * <!-- begin-user-doc -->
158             * <!-- end-user-doc -->
159             * @model
160             * @generated
161             */
162            void setExternalParent(Organization externalParent);
163    
164    } // Party