001: /**
002: * <copyright>
003: * </copyright>
004: *
005: * $Id: KeywordsTypeImpl.java 7522 2007-09-12 22:00:10Z saul.farber $
006: */package net.opengis.ows.impl;
007:
008: import java.util.Collection;
009:
010: import net.opengis.ows.CodeType;
011: import net.opengis.ows.KeywordsType;
012: import net.opengis.ows.OwsPackage;
013:
014: import org.eclipse.emf.common.notify.Notification;
015: import org.eclipse.emf.common.notify.NotificationChain;
016:
017: import org.eclipse.emf.common.util.EList;
018:
019: import org.eclipse.emf.ecore.EClass;
020: import org.eclipse.emf.ecore.InternalEObject;
021:
022: import org.eclipse.emf.ecore.impl.ENotificationImpl;
023: import org.eclipse.emf.ecore.impl.EObjectImpl;
024:
025: import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
026:
027: /**
028: * <!-- begin-user-doc -->
029: * An implementation of the model object '<em><b>Keywords Type</b></em>'.
030: * <!-- end-user-doc -->
031: * <p>
032: * The following features are implemented:
033: * <ul>
034: * <li>{@link net.opengis.ows.impl.KeywordsTypeImpl#getKeyword <em>Keyword</em>}</li>
035: * <li>{@link net.opengis.ows.impl.KeywordsTypeImpl#getType <em>Type</em>}</li>
036: * </ul>
037: * </p>
038: *
039: * @generated
040: */
041: public class KeywordsTypeImpl extends EObjectImpl implements
042: KeywordsType {
043: /**
044: * The cached value of the '{@link #getKeyword() <em>Keyword</em>}' attribute list.
045: * <!-- begin-user-doc -->
046: * <!-- end-user-doc -->
047: * @see #getKeyword()
048: * @generated
049: * @ordered
050: */
051: protected EList keyword;
052:
053: /**
054: * The cached value of the '{@link #getType() <em>Type</em>}' containment reference.
055: * <!-- begin-user-doc -->
056: * <!-- end-user-doc -->
057: * @see #getType()
058: * @generated
059: * @ordered
060: */
061: protected CodeType type;
062:
063: /**
064: * <!-- begin-user-doc -->
065: * <!-- end-user-doc -->
066: * @generated
067: */
068: protected KeywordsTypeImpl() {
069: super ();
070: }
071:
072: /**
073: * <!-- begin-user-doc -->
074: * <!-- end-user-doc -->
075: * @generated
076: */
077: protected EClass eStaticClass() {
078: return OwsPackage.Literals.KEYWORDS_TYPE;
079: }
080:
081: /**
082: * <!-- begin-user-doc -->
083: * <!-- end-user-doc -->
084: * @generated
085: */
086: public EList getKeyword() {
087: if (keyword == null) {
088: keyword = new EDataTypeUniqueEList(String.class, this ,
089: OwsPackage.KEYWORDS_TYPE__KEYWORD);
090: }
091: return keyword;
092: }
093:
094: /**
095: * <!-- begin-user-doc -->
096: * <!-- end-user-doc -->
097: * @generated
098: */
099: public CodeType getType() {
100: return type;
101: }
102:
103: /**
104: * <!-- begin-user-doc -->
105: * <!-- end-user-doc -->
106: * @generated
107: */
108: public NotificationChain basicSetType(CodeType newType,
109: NotificationChain msgs) {
110: CodeType oldType = type;
111: type = newType;
112: if (eNotificationRequired()) {
113: ENotificationImpl notification = new ENotificationImpl(
114: this , Notification.SET,
115: OwsPackage.KEYWORDS_TYPE__TYPE, oldType, newType);
116: if (msgs == null)
117: msgs = notification;
118: else
119: msgs.add(notification);
120: }
121: return msgs;
122: }
123:
124: /**
125: * <!-- begin-user-doc -->
126: * <!-- end-user-doc -->
127: * @generated
128: */
129: public void setType(CodeType newType) {
130: if (newType != type) {
131: NotificationChain msgs = null;
132: if (type != null)
133: msgs = ((InternalEObject) type).eInverseRemove(this ,
134: EOPPOSITE_FEATURE_BASE
135: - OwsPackage.KEYWORDS_TYPE__TYPE, null,
136: msgs);
137: if (newType != null)
138: msgs = ((InternalEObject) newType).eInverseAdd(this ,
139: EOPPOSITE_FEATURE_BASE
140: - OwsPackage.KEYWORDS_TYPE__TYPE, null,
141: msgs);
142: msgs = basicSetType(newType, msgs);
143: if (msgs != null)
144: msgs.dispatch();
145: } else if (eNotificationRequired())
146: eNotify(new ENotificationImpl(this , Notification.SET,
147: OwsPackage.KEYWORDS_TYPE__TYPE, newType, newType));
148: }
149:
150: /**
151: * <!-- begin-user-doc -->
152: * <!-- end-user-doc -->
153: * @generated
154: */
155: public NotificationChain eInverseRemove(InternalEObject otherEnd,
156: int featureID, NotificationChain msgs) {
157: switch (featureID) {
158: case OwsPackage.KEYWORDS_TYPE__TYPE:
159: return basicSetType(null, msgs);
160: }
161: return super .eInverseRemove(otherEnd, featureID, msgs);
162: }
163:
164: /**
165: * <!-- begin-user-doc -->
166: * <!-- end-user-doc -->
167: * @generated
168: */
169: public Object eGet(int featureID, boolean resolve, boolean coreType) {
170: switch (featureID) {
171: case OwsPackage.KEYWORDS_TYPE__KEYWORD:
172: return getKeyword();
173: case OwsPackage.KEYWORDS_TYPE__TYPE:
174: return getType();
175: }
176: return super .eGet(featureID, resolve, coreType);
177: }
178:
179: /**
180: * <!-- begin-user-doc -->
181: * <!-- end-user-doc -->
182: * @generated
183: */
184: public void eSet(int featureID, Object newValue) {
185: switch (featureID) {
186: case OwsPackage.KEYWORDS_TYPE__KEYWORD:
187: getKeyword().clear();
188: getKeyword().addAll((Collection) newValue);
189: return;
190: case OwsPackage.KEYWORDS_TYPE__TYPE:
191: setType((CodeType) newValue);
192: return;
193: }
194: super .eSet(featureID, newValue);
195: }
196:
197: /**
198: * <!-- begin-user-doc -->
199: * <!-- end-user-doc -->
200: * @generated
201: */
202: public void eUnset(int featureID) {
203: switch (featureID) {
204: case OwsPackage.KEYWORDS_TYPE__KEYWORD:
205: getKeyword().clear();
206: return;
207: case OwsPackage.KEYWORDS_TYPE__TYPE:
208: setType((CodeType) null);
209: return;
210: }
211: super .eUnset(featureID);
212: }
213:
214: /**
215: * <!-- begin-user-doc -->
216: * <!-- end-user-doc -->
217: * @generated
218: */
219: public boolean eIsSet(int featureID) {
220: switch (featureID) {
221: case OwsPackage.KEYWORDS_TYPE__KEYWORD:
222: return keyword != null && !keyword.isEmpty();
223: case OwsPackage.KEYWORDS_TYPE__TYPE:
224: return type != null;
225: }
226: return super .eIsSet(featureID);
227: }
228:
229: /**
230: * <!-- begin-user-doc -->
231: * <!-- end-user-doc -->
232: * @generated
233: */
234: public String toString() {
235: if (eIsProxy())
236: return super .toString();
237:
238: StringBuffer result = new StringBuffer(super .toString());
239: result.append(" (keyword: ");
240: result.append(keyword);
241: result.append(')');
242: return result.toString();
243: }
244:
245: } //KeywordsTypeImpl
|