001: /**
002: * <copyright>
003: * </copyright>
004: *
005: * $Id: IdentificationTypeImpl.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.IdentificationType;
012: import net.opengis.ows.MetadataType;
013: import net.opengis.ows.OwsPackage;
014:
015: import org.eclipse.emf.common.notify.Notification;
016: import org.eclipse.emf.common.notify.NotificationChain;
017:
018: import org.eclipse.emf.common.util.EList;
019:
020: import org.eclipse.emf.ecore.EClass;
021: import org.eclipse.emf.ecore.InternalEObject;
022:
023: import org.eclipse.emf.ecore.impl.ENotificationImpl;
024:
025: import org.eclipse.emf.ecore.util.BasicFeatureMap;
026: import org.eclipse.emf.ecore.util.EObjectContainmentEList;
027: import org.eclipse.emf.ecore.util.FeatureMap;
028: import org.eclipse.emf.ecore.util.InternalEList;
029:
030: /**
031: * <!-- begin-user-doc -->
032: * An implementation of the model object '<em><b>Identification Type</b></em>'.
033: * <!-- end-user-doc -->
034: * <p>
035: * The following features are implemented:
036: * <ul>
037: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getIdentifier <em>Identifier</em>}</li>
038: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getBoundingBoxGroup <em>Bounding Box Group</em>}</li>
039: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getBoundingBox <em>Bounding Box</em>}</li>
040: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getOutputFormat <em>Output Format</em>}</li>
041: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getAvailableCRSGroup <em>Available CRS Group</em>}</li>
042: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getAvailableCRS <em>Available CRS</em>}</li>
043: * <li>{@link net.opengis.ows.impl.IdentificationTypeImpl#getMetadata <em>Metadata</em>}</li>
044: * </ul>
045: * </p>
046: *
047: * @generated
048: */
049: public class IdentificationTypeImpl extends DescriptionTypeImpl
050: implements IdentificationType {
051: /**
052: * The cached value of the '{@link #getIdentifier() <em>Identifier</em>}' containment reference.
053: * <!-- begin-user-doc -->
054: * <!-- end-user-doc -->
055: * @see #getIdentifier()
056: * @generated
057: * @ordered
058: */
059: protected CodeType identifier;
060:
061: /**
062: * The cached value of the '{@link #getBoundingBoxGroup() <em>Bounding Box Group</em>}' attribute list.
063: * <!-- begin-user-doc -->
064: * <!-- end-user-doc -->
065: * @see #getBoundingBoxGroup()
066: * @generated
067: * @ordered
068: */
069: protected FeatureMap boundingBoxGroup;
070:
071: /**
072: * The default value of the '{@link #getOutputFormat() <em>Output Format</em>}' attribute.
073: * <!-- begin-user-doc -->
074: * <!-- end-user-doc -->
075: * @see #getOutputFormat()
076: * @generated
077: * @ordered
078: */
079: protected static final String OUTPUT_FORMAT_EDEFAULT = null;
080:
081: /**
082: * The cached value of the '{@link #getOutputFormat() <em>Output Format</em>}' attribute.
083: * <!-- begin-user-doc -->
084: * <!-- end-user-doc -->
085: * @see #getOutputFormat()
086: * @generated
087: * @ordered
088: */
089: protected String outputFormat = OUTPUT_FORMAT_EDEFAULT;
090:
091: /**
092: * The cached value of the '{@link #getAvailableCRSGroup() <em>Available CRS Group</em>}' attribute list.
093: * <!-- begin-user-doc -->
094: * <!-- end-user-doc -->
095: * @see #getAvailableCRSGroup()
096: * @generated
097: * @ordered
098: */
099: protected FeatureMap availableCRSGroup;
100:
101: /**
102: * The default value of the '{@link #getAvailableCRS() <em>Available CRS</em>}' attribute.
103: * <!-- begin-user-doc -->
104: * <!-- end-user-doc -->
105: * @see #getAvailableCRS()
106: * @generated
107: * @ordered
108: */
109: protected static final String AVAILABLE_CRS_EDEFAULT = null;
110:
111: /**
112: * The cached value of the '{@link #getMetadata() <em>Metadata</em>}' containment reference list.
113: * <!-- begin-user-doc -->
114: * <!-- end-user-doc -->
115: * @see #getMetadata()
116: * @generated
117: * @ordered
118: */
119: protected EList metadata;
120:
121: /**
122: * <!-- begin-user-doc -->
123: * <!-- end-user-doc -->
124: * @generated
125: */
126: protected IdentificationTypeImpl() {
127: super ();
128: }
129:
130: /**
131: * <!-- begin-user-doc -->
132: * <!-- end-user-doc -->
133: * @generated
134: */
135: protected EClass eStaticClass() {
136: return OwsPackage.Literals.IDENTIFICATION_TYPE;
137: }
138:
139: /**
140: * <!-- begin-user-doc -->
141: * <!-- end-user-doc -->
142: * @generated
143: */
144: public CodeType getIdentifier() {
145: return identifier;
146: }
147:
148: /**
149: * <!-- begin-user-doc -->
150: * <!-- end-user-doc -->
151: * @generated
152: */
153: public NotificationChain basicSetIdentifier(CodeType newIdentifier,
154: NotificationChain msgs) {
155: CodeType oldIdentifier = identifier;
156: identifier = newIdentifier;
157: if (eNotificationRequired()) {
158: ENotificationImpl notification = new ENotificationImpl(
159: this , Notification.SET,
160: OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER,
161: oldIdentifier, newIdentifier);
162: if (msgs == null)
163: msgs = notification;
164: else
165: msgs.add(notification);
166: }
167: return msgs;
168: }
169:
170: /**
171: * <!-- begin-user-doc -->
172: * <!-- end-user-doc -->
173: * @generated
174: */
175: public void setIdentifier(CodeType newIdentifier) {
176: if (newIdentifier != identifier) {
177: NotificationChain msgs = null;
178: if (identifier != null)
179: msgs = ((InternalEObject) identifier)
180: .eInverseRemove(
181: this ,
182: EOPPOSITE_FEATURE_BASE
183: - OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER,
184: null, msgs);
185: if (newIdentifier != null)
186: msgs = ((InternalEObject) newIdentifier)
187: .eInverseAdd(
188: this ,
189: EOPPOSITE_FEATURE_BASE
190: - OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER,
191: null, msgs);
192: msgs = basicSetIdentifier(newIdentifier, msgs);
193: if (msgs != null)
194: msgs.dispatch();
195: } else if (eNotificationRequired())
196: eNotify(new ENotificationImpl(this , Notification.SET,
197: OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER,
198: newIdentifier, newIdentifier));
199: }
200:
201: /**
202: * <!-- begin-user-doc -->
203: * <!-- end-user-doc -->
204: * @generated
205: */
206: public FeatureMap getBoundingBoxGroup() {
207: if (boundingBoxGroup == null) {
208: boundingBoxGroup = new BasicFeatureMap(this ,
209: OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP);
210: }
211: return boundingBoxGroup;
212: }
213:
214: /**
215: * <!-- begin-user-doc -->
216: * <!-- end-user-doc -->
217: * @generated
218: */
219: public EList getBoundingBox() {
220: return getBoundingBoxGroup().list(
221: OwsPackage.Literals.IDENTIFICATION_TYPE__BOUNDING_BOX);
222: }
223:
224: /**
225: * <!-- begin-user-doc -->
226: * <!-- end-user-doc -->
227: * @generated
228: */
229: public String getOutputFormat() {
230: return outputFormat;
231: }
232:
233: /**
234: * <!-- begin-user-doc -->
235: * <!-- end-user-doc -->
236: * @generated
237: */
238: public void setOutputFormat(String newOutputFormat) {
239: String oldOutputFormat = outputFormat;
240: outputFormat = newOutputFormat;
241: if (eNotificationRequired())
242: eNotify(new ENotificationImpl(this , Notification.SET,
243: OwsPackage.IDENTIFICATION_TYPE__OUTPUT_FORMAT,
244: oldOutputFormat, outputFormat));
245: }
246:
247: /**
248: * <!-- begin-user-doc -->
249: * <!-- end-user-doc -->
250: * @generated
251: */
252: public FeatureMap getAvailableCRSGroup() {
253: if (availableCRSGroup == null) {
254: availableCRSGroup = new BasicFeatureMap(this ,
255: OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP);
256: }
257: return availableCRSGroup;
258: }
259:
260: /**
261: * <!-- begin-user-doc -->
262: * <!-- end-user-doc -->
263: * @generated
264: */
265: public String getAvailableCRS() {
266: return (String) getAvailableCRSGroup().get(
267: OwsPackage.Literals.IDENTIFICATION_TYPE__AVAILABLE_CRS,
268: true);
269: }
270:
271: /**
272: * <!-- begin-user-doc -->
273: * <!-- end-user-doc -->
274: * @generated
275: */
276: public void setAvailableCRS(String newAvailableCRS) {
277: ((FeatureMap.Internal) getAvailableCRSGroup()).set(
278: OwsPackage.Literals.IDENTIFICATION_TYPE__AVAILABLE_CRS,
279: newAvailableCRS);
280: }
281:
282: /**
283: * <!-- begin-user-doc -->
284: * <!-- end-user-doc -->
285: * @generated
286: */
287: public EList getMetadata() {
288: if (metadata == null) {
289: metadata = new EObjectContainmentEList(MetadataType.class,
290: this , OwsPackage.IDENTIFICATION_TYPE__METADATA);
291: }
292: return metadata;
293: }
294:
295: /**
296: * <!-- begin-user-doc -->
297: * <!-- end-user-doc -->
298: * @generated
299: */
300: public NotificationChain eInverseRemove(InternalEObject otherEnd,
301: int featureID, NotificationChain msgs) {
302: switch (featureID) {
303: case OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER:
304: return basicSetIdentifier(null, msgs);
305: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP:
306: return ((InternalEList) getBoundingBoxGroup()).basicRemove(
307: otherEnd, msgs);
308: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX:
309: return ((InternalEList) getBoundingBox()).basicRemove(
310: otherEnd, msgs);
311: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP:
312: return ((InternalEList) getAvailableCRSGroup())
313: .basicRemove(otherEnd, msgs);
314: case OwsPackage.IDENTIFICATION_TYPE__METADATA:
315: return ((InternalEList) getMetadata()).basicRemove(
316: otherEnd, msgs);
317: }
318: return super .eInverseRemove(otherEnd, featureID, msgs);
319: }
320:
321: /**
322: * <!-- begin-user-doc -->
323: * <!-- end-user-doc -->
324: * @generated
325: */
326: public Object eGet(int featureID, boolean resolve, boolean coreType) {
327: switch (featureID) {
328: case OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER:
329: return getIdentifier();
330: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP:
331: if (coreType)
332: return getBoundingBoxGroup();
333: return ((FeatureMap.Internal) getBoundingBoxGroup())
334: .getWrapper();
335: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX:
336: return getBoundingBox();
337: case OwsPackage.IDENTIFICATION_TYPE__OUTPUT_FORMAT:
338: return getOutputFormat();
339: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP:
340: if (coreType)
341: return getAvailableCRSGroup();
342: return ((FeatureMap.Internal) getAvailableCRSGroup())
343: .getWrapper();
344: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS:
345: return getAvailableCRS();
346: case OwsPackage.IDENTIFICATION_TYPE__METADATA:
347: return getMetadata();
348: }
349: return super .eGet(featureID, resolve, coreType);
350: }
351:
352: /**
353: * <!-- begin-user-doc -->
354: * <!-- end-user-doc -->
355: * @generated
356: */
357: public void eSet(int featureID, Object newValue) {
358: switch (featureID) {
359: case OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER:
360: setIdentifier((CodeType) newValue);
361: return;
362: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP:
363: ((FeatureMap.Internal) getBoundingBoxGroup()).set(newValue);
364: return;
365: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX:
366: getBoundingBox().clear();
367: getBoundingBox().addAll((Collection) newValue);
368: return;
369: case OwsPackage.IDENTIFICATION_TYPE__OUTPUT_FORMAT:
370: setOutputFormat((String) newValue);
371: return;
372: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP:
373: ((FeatureMap.Internal) getAvailableCRSGroup())
374: .set(newValue);
375: return;
376: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS:
377: setAvailableCRS((String) newValue);
378: return;
379: case OwsPackage.IDENTIFICATION_TYPE__METADATA:
380: getMetadata().clear();
381: getMetadata().addAll((Collection) newValue);
382: return;
383: }
384: super .eSet(featureID, newValue);
385: }
386:
387: /**
388: * <!-- begin-user-doc -->
389: * <!-- end-user-doc -->
390: * @generated
391: */
392: public void eUnset(int featureID) {
393: switch (featureID) {
394: case OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER:
395: setIdentifier((CodeType) null);
396: return;
397: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP:
398: getBoundingBoxGroup().clear();
399: return;
400: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX:
401: getBoundingBox().clear();
402: return;
403: case OwsPackage.IDENTIFICATION_TYPE__OUTPUT_FORMAT:
404: setOutputFormat(OUTPUT_FORMAT_EDEFAULT);
405: return;
406: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP:
407: getAvailableCRSGroup().clear();
408: return;
409: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS:
410: setAvailableCRS(AVAILABLE_CRS_EDEFAULT);
411: return;
412: case OwsPackage.IDENTIFICATION_TYPE__METADATA:
413: getMetadata().clear();
414: return;
415: }
416: super .eUnset(featureID);
417: }
418:
419: /**
420: * <!-- begin-user-doc -->
421: * <!-- end-user-doc -->
422: * @generated
423: */
424: public boolean eIsSet(int featureID) {
425: switch (featureID) {
426: case OwsPackage.IDENTIFICATION_TYPE__IDENTIFIER:
427: return identifier != null;
428: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX_GROUP:
429: return boundingBoxGroup != null
430: && !boundingBoxGroup.isEmpty();
431: case OwsPackage.IDENTIFICATION_TYPE__BOUNDING_BOX:
432: return !getBoundingBox().isEmpty();
433: case OwsPackage.IDENTIFICATION_TYPE__OUTPUT_FORMAT:
434: return OUTPUT_FORMAT_EDEFAULT == null ? outputFormat != null
435: : !OUTPUT_FORMAT_EDEFAULT.equals(outputFormat);
436: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS_GROUP:
437: return availableCRSGroup != null
438: && !availableCRSGroup.isEmpty();
439: case OwsPackage.IDENTIFICATION_TYPE__AVAILABLE_CRS:
440: return AVAILABLE_CRS_EDEFAULT == null ? getAvailableCRS() != null
441: : !AVAILABLE_CRS_EDEFAULT.equals(getAvailableCRS());
442: case OwsPackage.IDENTIFICATION_TYPE__METADATA:
443: return metadata != null && !metadata.isEmpty();
444: }
445: return super .eIsSet(featureID);
446: }
447:
448: /**
449: * <!-- begin-user-doc -->
450: * <!-- end-user-doc -->
451: * @generated
452: */
453: public String toString() {
454: if (eIsProxy())
455: return super .toString();
456:
457: StringBuffer result = new StringBuffer(super .toString());
458: result.append(" (boundingBoxGroup: ");
459: result.append(boundingBoxGroup);
460: result.append(", outputFormat: ");
461: result.append(outputFormat);
462: result.append(", availableCRSGroup: ");
463: result.append(availableCRSGroup);
464: result.append(')');
465: return result.toString();
466: }
467:
468: } //IdentificationTypeImpl
|