001: /**
002: * <copyright>
003: * </copyright>
004: *
005: * $Id: GMLObjectTypeTypeImpl.java 7522 2007-09-12 22:00:10Z saul.farber $
006: */package net.opengis.wfs.impl;
007:
008: import java.util.Collection;
009:
010: import javax.xml.namespace.QName;
011:
012: import net.opengis.ows.KeywordsType;
013:
014: import net.opengis.wfs.GMLObjectTypeType;
015: import net.opengis.wfs.OutputFormatListType;
016: import net.opengis.wfs.WfsPackage;
017:
018: import org.eclipse.emf.common.notify.Notification;
019: import org.eclipse.emf.common.notify.NotificationChain;
020:
021: import org.eclipse.emf.common.util.EList;
022:
023: import org.eclipse.emf.ecore.EClass;
024: import org.eclipse.emf.ecore.InternalEObject;
025:
026: import org.eclipse.emf.ecore.impl.ENotificationImpl;
027: import org.eclipse.emf.ecore.impl.EObjectImpl;
028:
029: import org.eclipse.emf.ecore.util.EObjectContainmentEList;
030: import org.eclipse.emf.ecore.util.InternalEList;
031:
032: /**
033: * <!-- begin-user-doc -->
034: * An implementation of the model object '<em><b>GML Object Type Type</b></em>'.
035: * <!-- end-user-doc -->
036: * <p>
037: * The following features are implemented:
038: * <ul>
039: * <li>{@link net.opengis.wfs.impl.GMLObjectTypeTypeImpl#getName <em>Name</em>}</li>
040: * <li>{@link net.opengis.wfs.impl.GMLObjectTypeTypeImpl#getTitle <em>Title</em>}</li>
041: * <li>{@link net.opengis.wfs.impl.GMLObjectTypeTypeImpl#getAbstract <em>Abstract</em>}</li>
042: * <li>{@link net.opengis.wfs.impl.GMLObjectTypeTypeImpl#getKeywords <em>Keywords</em>}</li>
043: * <li>{@link net.opengis.wfs.impl.GMLObjectTypeTypeImpl#getOutputFormats <em>Output Formats</em>}</li>
044: * </ul>
045: * </p>
046: *
047: * @generated
048: */
049: public class GMLObjectTypeTypeImpl extends EObjectImpl implements
050: GMLObjectTypeType {
051: /**
052: * The default value of the '{@link #getName() <em>Name</em>}' attribute.
053: * <!-- begin-user-doc -->
054: * <!-- end-user-doc -->
055: * @see #getName()
056: * @generated
057: * @ordered
058: */
059: protected static final QName NAME_EDEFAULT = null;
060:
061: /**
062: * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
063: * <!-- begin-user-doc -->
064: * <!-- end-user-doc -->
065: * @see #getName()
066: * @generated
067: * @ordered
068: */
069: protected QName name = NAME_EDEFAULT;
070:
071: /**
072: * The default value of the '{@link #getTitle() <em>Title</em>}' attribute.
073: * <!-- begin-user-doc -->
074: * <!-- end-user-doc -->
075: * @see #getTitle()
076: * @generated
077: * @ordered
078: */
079: protected static final String TITLE_EDEFAULT = null;
080:
081: /**
082: * The cached value of the '{@link #getTitle() <em>Title</em>}' attribute.
083: * <!-- begin-user-doc -->
084: * <!-- end-user-doc -->
085: * @see #getTitle()
086: * @generated
087: * @ordered
088: */
089: protected String title = TITLE_EDEFAULT;
090:
091: /**
092: * The default value of the '{@link #getAbstract() <em>Abstract</em>}' attribute.
093: * <!-- begin-user-doc -->
094: * <!-- end-user-doc -->
095: * @see #getAbstract()
096: * @generated
097: * @ordered
098: */
099: protected static final String ABSTRACT_EDEFAULT = null;
100:
101: /**
102: * The cached value of the '{@link #getAbstract() <em>Abstract</em>}' attribute.
103: * <!-- begin-user-doc -->
104: * <!-- end-user-doc -->
105: * @see #getAbstract()
106: * @generated
107: * @ordered
108: */
109: protected String abstract_ = ABSTRACT_EDEFAULT;
110:
111: /**
112: * The cached value of the '{@link #getKeywords() <em>Keywords</em>}' containment reference list.
113: * <!-- begin-user-doc -->
114: * <!-- end-user-doc -->
115: * @see #getKeywords()
116: * @generated
117: * @ordered
118: */
119: protected EList keywords;
120:
121: /**
122: * The cached value of the '{@link #getOutputFormats() <em>Output Formats</em>}' containment reference.
123: * <!-- begin-user-doc -->
124: * <!-- end-user-doc -->
125: * @see #getOutputFormats()
126: * @generated
127: * @ordered
128: */
129: protected OutputFormatListType outputFormats;
130:
131: /**
132: * <!-- begin-user-doc -->
133: * <!-- end-user-doc -->
134: * @generated
135: */
136: protected GMLObjectTypeTypeImpl() {
137: super ();
138: }
139:
140: /**
141: * <!-- begin-user-doc -->
142: * <!-- end-user-doc -->
143: * @generated
144: */
145: protected EClass eStaticClass() {
146: return WfsPackage.Literals.GML_OBJECT_TYPE_TYPE;
147: }
148:
149: /**
150: * <!-- begin-user-doc -->
151: * <!-- end-user-doc -->
152: * @generated
153: */
154: public QName getName() {
155: return name;
156: }
157:
158: /**
159: * <!-- begin-user-doc -->
160: * <!-- end-user-doc -->
161: * @generated
162: */
163: public void setName(QName newName) {
164: QName oldName = name;
165: name = newName;
166: if (eNotificationRequired())
167: eNotify(new ENotificationImpl(this , Notification.SET,
168: WfsPackage.GML_OBJECT_TYPE_TYPE__NAME, oldName,
169: name));
170: }
171:
172: /**
173: * <!-- begin-user-doc -->
174: * <!-- end-user-doc -->
175: * @generated
176: */
177: public String getTitle() {
178: return title;
179: }
180:
181: /**
182: * <!-- begin-user-doc -->
183: * <!-- end-user-doc -->
184: * @generated
185: */
186: public void setTitle(String newTitle) {
187: String oldTitle = title;
188: title = newTitle;
189: if (eNotificationRequired())
190: eNotify(new ENotificationImpl(this , Notification.SET,
191: WfsPackage.GML_OBJECT_TYPE_TYPE__TITLE, oldTitle,
192: title));
193: }
194:
195: /**
196: * <!-- begin-user-doc -->
197: * <!-- end-user-doc -->
198: * @generated
199: */
200: public String getAbstract() {
201: return abstract_;
202: }
203:
204: /**
205: * <!-- begin-user-doc -->
206: * <!-- end-user-doc -->
207: * @generated
208: */
209: public void setAbstract(String newAbstract) {
210: String oldAbstract = abstract_;
211: abstract_ = newAbstract;
212: if (eNotificationRequired())
213: eNotify(new ENotificationImpl(this , Notification.SET,
214: WfsPackage.GML_OBJECT_TYPE_TYPE__ABSTRACT,
215: oldAbstract, abstract_));
216: }
217:
218: /**
219: * <!-- begin-user-doc -->
220: * <!-- end-user-doc -->
221: * @generated
222: */
223: public EList getKeywords() {
224: if (keywords == null) {
225: keywords = new EObjectContainmentEList(KeywordsType.class,
226: this , WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS);
227: }
228: return keywords;
229: }
230:
231: /**
232: * <!-- begin-user-doc -->
233: * <!-- end-user-doc -->
234: * @generated
235: */
236: public OutputFormatListType getOutputFormats() {
237: return outputFormats;
238: }
239:
240: /**
241: * <!-- begin-user-doc -->
242: * <!-- end-user-doc -->
243: * @generated
244: */
245: public NotificationChain basicSetOutputFormats(
246: OutputFormatListType newOutputFormats,
247: NotificationChain msgs) {
248: OutputFormatListType oldOutputFormats = outputFormats;
249: outputFormats = newOutputFormats;
250: if (eNotificationRequired()) {
251: ENotificationImpl notification = new ENotificationImpl(
252: this , Notification.SET,
253: WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS,
254: oldOutputFormats, newOutputFormats);
255: if (msgs == null)
256: msgs = notification;
257: else
258: msgs.add(notification);
259: }
260: return msgs;
261: }
262:
263: /**
264: * <!-- begin-user-doc -->
265: * <!-- end-user-doc -->
266: * @generated
267: */
268: public void setOutputFormats(OutputFormatListType newOutputFormats) {
269: if (newOutputFormats != outputFormats) {
270: NotificationChain msgs = null;
271: if (outputFormats != null)
272: msgs = ((InternalEObject) outputFormats)
273: .eInverseRemove(
274: this ,
275: EOPPOSITE_FEATURE_BASE
276: - WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS,
277: null, msgs);
278: if (newOutputFormats != null)
279: msgs = ((InternalEObject) newOutputFormats)
280: .eInverseAdd(
281: this ,
282: EOPPOSITE_FEATURE_BASE
283: - WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS,
284: null, msgs);
285: msgs = basicSetOutputFormats(newOutputFormats, msgs);
286: if (msgs != null)
287: msgs.dispatch();
288: } else if (eNotificationRequired())
289: eNotify(new ENotificationImpl(this , Notification.SET,
290: WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS,
291: newOutputFormats, newOutputFormats));
292: }
293:
294: /**
295: * <!-- begin-user-doc -->
296: * <!-- end-user-doc -->
297: * @generated
298: */
299: public NotificationChain eInverseRemove(InternalEObject otherEnd,
300: int featureID, NotificationChain msgs) {
301: switch (featureID) {
302: case WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS:
303: return ((InternalEList) getKeywords()).basicRemove(
304: otherEnd, msgs);
305: case WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS:
306: return basicSetOutputFormats(null, msgs);
307: }
308: return super .eInverseRemove(otherEnd, featureID, msgs);
309: }
310:
311: /**
312: * <!-- begin-user-doc -->
313: * <!-- end-user-doc -->
314: * @generated
315: */
316: public Object eGet(int featureID, boolean resolve, boolean coreType) {
317: switch (featureID) {
318: case WfsPackage.GML_OBJECT_TYPE_TYPE__NAME:
319: return getName();
320: case WfsPackage.GML_OBJECT_TYPE_TYPE__TITLE:
321: return getTitle();
322: case WfsPackage.GML_OBJECT_TYPE_TYPE__ABSTRACT:
323: return getAbstract();
324: case WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS:
325: return getKeywords();
326: case WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS:
327: return getOutputFormats();
328: }
329: return super .eGet(featureID, resolve, coreType);
330: }
331:
332: /**
333: * <!-- begin-user-doc -->
334: * <!-- end-user-doc -->
335: * @generated
336: */
337: public void eSet(int featureID, Object newValue) {
338: switch (featureID) {
339: case WfsPackage.GML_OBJECT_TYPE_TYPE__NAME:
340: setName((QName) newValue);
341: return;
342: case WfsPackage.GML_OBJECT_TYPE_TYPE__TITLE:
343: setTitle((String) newValue);
344: return;
345: case WfsPackage.GML_OBJECT_TYPE_TYPE__ABSTRACT:
346: setAbstract((String) newValue);
347: return;
348: case WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS:
349: getKeywords().clear();
350: getKeywords().addAll((Collection) newValue);
351: return;
352: case WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS:
353: setOutputFormats((OutputFormatListType) newValue);
354: return;
355: }
356: super .eSet(featureID, newValue);
357: }
358:
359: /**
360: * <!-- begin-user-doc -->
361: * <!-- end-user-doc -->
362: * @generated
363: */
364: public void eUnset(int featureID) {
365: switch (featureID) {
366: case WfsPackage.GML_OBJECT_TYPE_TYPE__NAME:
367: setName(NAME_EDEFAULT);
368: return;
369: case WfsPackage.GML_OBJECT_TYPE_TYPE__TITLE:
370: setTitle(TITLE_EDEFAULT);
371: return;
372: case WfsPackage.GML_OBJECT_TYPE_TYPE__ABSTRACT:
373: setAbstract(ABSTRACT_EDEFAULT);
374: return;
375: case WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS:
376: getKeywords().clear();
377: return;
378: case WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS:
379: setOutputFormats((OutputFormatListType) null);
380: return;
381: }
382: super .eUnset(featureID);
383: }
384:
385: /**
386: * <!-- begin-user-doc -->
387: * <!-- end-user-doc -->
388: * @generated
389: */
390: public boolean eIsSet(int featureID) {
391: switch (featureID) {
392: case WfsPackage.GML_OBJECT_TYPE_TYPE__NAME:
393: return NAME_EDEFAULT == null ? name != null
394: : !NAME_EDEFAULT.equals(name);
395: case WfsPackage.GML_OBJECT_TYPE_TYPE__TITLE:
396: return TITLE_EDEFAULT == null ? title != null
397: : !TITLE_EDEFAULT.equals(title);
398: case WfsPackage.GML_OBJECT_TYPE_TYPE__ABSTRACT:
399: return ABSTRACT_EDEFAULT == null ? abstract_ != null
400: : !ABSTRACT_EDEFAULT.equals(abstract_);
401: case WfsPackage.GML_OBJECT_TYPE_TYPE__KEYWORDS:
402: return keywords != null && !keywords.isEmpty();
403: case WfsPackage.GML_OBJECT_TYPE_TYPE__OUTPUT_FORMATS:
404: return outputFormats != null;
405: }
406: return super .eIsSet(featureID);
407: }
408:
409: /**
410: * <!-- begin-user-doc -->
411: * <!-- end-user-doc -->
412: * @generated
413: */
414: public String toString() {
415: if (eIsProxy())
416: return super .toString();
417:
418: StringBuffer result = new StringBuffer(super .toString());
419: result.append(" (name: ");
420: result.append(name);
421: result.append(", title: ");
422: result.append(title);
423: result.append(", abstract: ");
424: result.append(abstract_);
425: result.append(')');
426: return result.toString();
427: }
428:
429: } //GMLObjectTypeTypeImpl
|