KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > emf > ecore > xml > type > impl > SimpleAnyTypeImpl


1 /**
2  * <copyright>
3  *
4  * Copyright (c) 2003-2004 IBM Corporation and others.
5  * All rights reserved. This program and the accompanying materials
6  * are made available under the terms of the Eclipse Public License v1.0
7  * which accompanies this distribution, and is available at
8  * http://www.eclipse.org/legal/epl-v10.html
9  *
10  * Contributors:
11  * IBM - Initial API and implementation
12  *
13  * </copyright>
14  *
15  * $Id: SimpleAnyTypeImpl.java,v 1.3 2005/06/08 06:20:10 nickb Exp $
16  */

17 package org.eclipse.emf.ecore.xml.type.impl;
18
19 import java.util.Collection JavaDoc;
20 import java.util.Iterator JavaDoc;
21
22 import org.eclipse.emf.common.notify.Notification;
23 import org.eclipse.emf.common.notify.NotificationChain;
24 import org.eclipse.emf.ecore.EClass;
25 import org.eclipse.emf.ecore.EDataType;
26 import org.eclipse.emf.ecore.EStructuralFeature;
27 import org.eclipse.emf.ecore.InternalEObject;
28 import org.eclipse.emf.ecore.impl.ENotificationImpl;
29 import org.eclipse.emf.ecore.util.EcoreUtil;
30 import org.eclipse.emf.ecore.util.FeatureMap;
31 import org.eclipse.emf.ecore.util.InternalEList;
32 import org.eclipse.emf.ecore.xml.type.SimpleAnyType;
33 import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
34
35 /**
36  * <!-- begin-user-doc -->
37  * An implementation of the model object '<em><b>Simple Any Type</b></em>'.
38  * <!-- end-user-doc -->
39  * <p>
40  * The following features are implemented:
41  * <ul>
42  * <li>{@link org.eclipse.emf.ecore.xml.type.impl.SimpleAnyTypeImpl#getRawValue <em>Raw Value</em>}</li>
43  * <li>{@link org.eclipse.emf.ecore.xml.type.impl.SimpleAnyTypeImpl#getValue <em>Value</em>}</li>
44  * <li>{@link org.eclipse.emf.ecore.xml.type.impl.SimpleAnyTypeImpl#getInstanceType <em>Instance Type</em>}</li>
45  * </ul>
46  * </p>
47  *
48  * @generated
49  */

50 public class SimpleAnyTypeImpl extends AnyTypeImpl implements SimpleAnyType
51 {
52   /**
53    * The default value of the '{@link #getRawValue() <em>Raw Value</em>}' attribute.
54    * <!-- begin-user-doc -->
55    * <!-- end-user-doc -->
56    * @see #getRawValue()
57    * @generated
58    * @ordered
59    */

60   protected static final String JavaDoc RAW_VALUE_EDEFAULT = null;
61
62   /**
63    * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
64    * <!-- begin-user-doc -->
65    * <!-- end-user-doc -->
66    * @see #getValue()
67    * @generated
68    * @ordered
69    */

70   protected static final Object JavaDoc VALUE_EDEFAULT = null;
71
72   /**
73    * The cached value of the '{@link #getInstanceType() <em>Instance Type</em>}' reference.
74    * <!-- begin-user-doc -->
75    * <!-- end-user-doc -->
76    * @see #getInstanceType()
77    * @generated
78    * @ordered
79    */

80   protected EDataType instanceType = null;
81
82   /**
83    * <!-- begin-user-doc -->
84    * <!-- end-user-doc -->
85    * @generated
86    */

87   protected SimpleAnyTypeImpl()
88   {
89     super();
90   }
91
92   /**
93    * <!-- begin-user-doc -->
94    * <!-- end-user-doc -->
95    * @generated
96    */

97   protected EClass eStaticClass()
98   {
99     return XMLTypePackage.eINSTANCE.getSimpleAnyType();
100   }
101
102   /**
103    * <!-- begin-user-doc -->
104    * <!-- end-user-doc -->
105    * @generated NOT
106    */

107   public String JavaDoc getRawValue()
108   {
109     StringBuffer JavaDoc value = new StringBuffer JavaDoc();
110     for (Iterator JavaDoc i = getMixed().iterator(); i.hasNext(); )
111     {
112       FeatureMap.Entry entry = (FeatureMap.Entry)i.next();
113       if (entry.getEStructuralFeature() == XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text())
114       {
115         value.append(entry.getValue());
116       }
117     }
118     return value.toString();
119   }
120
121   /**
122    * <!-- begin-user-doc -->
123    * <!-- end-user-doc -->
124    * @generated NOT
125    */

126   public void setRawValue(String JavaDoc newRawValue)
127   {
128     getMixed().clear();
129     if (newRawValue != null)
130     {
131       getMixed().add(XMLTypePackage.eINSTANCE.getXMLTypeDocumentRoot_Text(), newRawValue);
132     }
133   }
134
135   /**
136    * <!-- begin-user-doc -->
137    * <!-- end-user-doc -->
138    * @generated NOT
139    */

140   public Object JavaDoc getValue()
141   {
142     return EcoreUtil.createFromString(instanceType, getRawValue());
143   }
144
145   /**
146    * <!-- begin-user-doc -->
147    * <!-- end-user-doc -->
148    * @generated NOT
149    */

150   public void setValue(Object JavaDoc newValue)
151   {
152     setRawValue(EcoreUtil.convertToString(instanceType, newValue));
153   }
154
155   /**
156    * <!-- begin-user-doc -->
157    * <!-- end-user-doc -->
158    * @generated
159    */

160   public EDataType getInstanceType()
161   {
162     return instanceType;
163   }
164
165   /**
166    * <!-- begin-user-doc -->
167    * <!-- end-user-doc -->
168    * @generated
169    */

170   public void setInstanceType(EDataType newInstanceType)
171   {
172     EDataType oldInstanceType = instanceType;
173     instanceType = newInstanceType;
174     if (eNotificationRequired())
175       eNotify(new ENotificationImpl(this, Notification.SET, XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE, oldInstanceType, instanceType));
176   }
177
178   /**
179    * <!-- begin-user-doc -->
180    * <!-- end-user-doc -->
181    * @generated
182    */

183   public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class JavaDoc baseClass, NotificationChain msgs)
184   {
185     if (featureID >= 0)
186     {
187       switch (eDerivedStructuralFeatureID(featureID, baseClass))
188       {
189         case XMLTypePackage.SIMPLE_ANY_TYPE__MIXED:
190           return ((InternalEList)getMixed()).basicRemove(otherEnd, msgs);
191         case XMLTypePackage.SIMPLE_ANY_TYPE__ANY:
192           return ((InternalEList)getAny()).basicRemove(otherEnd, msgs);
193         case XMLTypePackage.SIMPLE_ANY_TYPE__ANY_ATTRIBUTE:
194           return ((InternalEList)getAnyAttribute()).basicRemove(otherEnd, msgs);
195         default:
196           return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs);
197       }
198     }
199     return eBasicSetContainer(null, featureID, msgs);
200   }
201
202   /**
203    * <!-- begin-user-doc -->
204    * <!-- end-user-doc -->
205    * @generated
206    */

207   public Object JavaDoc eGet(EStructuralFeature eFeature, boolean resolve)
208   {
209     switch (eDerivedStructuralFeatureID(eFeature))
210     {
211       case XMLTypePackage.SIMPLE_ANY_TYPE__MIXED:
212         return getMixed();
213       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY:
214         return getAny();
215       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY_ATTRIBUTE:
216         return getAnyAttribute();
217       case XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE:
218         return getRawValue();
219       case XMLTypePackage.SIMPLE_ANY_TYPE__VALUE:
220         return getValue();
221       case XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE:
222         return getInstanceType();
223     }
224     return eDynamicGet(eFeature, resolve);
225   }
226
227   /**
228    * <!-- begin-user-doc -->
229    * <!-- end-user-doc -->
230    * @generated
231    */

232   public void eSet(EStructuralFeature eFeature, Object JavaDoc newValue)
233   {
234     switch (eDerivedStructuralFeatureID(eFeature))
235     {
236       case XMLTypePackage.SIMPLE_ANY_TYPE__MIXED:
237         getMixed().clear();
238         getMixed().addAll((Collection JavaDoc)newValue);
239         return;
240       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY:
241         getAny().clear();
242         getAny().addAll((Collection JavaDoc)newValue);
243         return;
244       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY_ATTRIBUTE:
245         getAnyAttribute().clear();
246         getAnyAttribute().addAll((Collection JavaDoc)newValue);
247         return;
248       case XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE:
249         setRawValue((String JavaDoc)newValue);
250         return;
251       case XMLTypePackage.SIMPLE_ANY_TYPE__VALUE:
252         setValue((Object JavaDoc)newValue);
253         return;
254       case XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE:
255         setInstanceType((EDataType)newValue);
256         return;
257     }
258     eDynamicSet(eFeature, newValue);
259   }
260
261   /**
262    * <!-- begin-user-doc -->
263    * <!-- end-user-doc -->
264    * @generated
265    */

266   public void eUnset(EStructuralFeature eFeature)
267   {
268     switch (eDerivedStructuralFeatureID(eFeature))
269     {
270       case XMLTypePackage.SIMPLE_ANY_TYPE__MIXED:
271         getMixed().clear();
272         return;
273       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY:
274         getAny().clear();
275         return;
276       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY_ATTRIBUTE:
277         getAnyAttribute().clear();
278         return;
279       case XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE:
280         setRawValue(RAW_VALUE_EDEFAULT);
281         return;
282       case XMLTypePackage.SIMPLE_ANY_TYPE__VALUE:
283         setValue(VALUE_EDEFAULT);
284         return;
285       case XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE:
286         setInstanceType((EDataType)null);
287         return;
288     }
289     eDynamicUnset(eFeature);
290   }
291
292   /**
293    * <!-- begin-user-doc -->
294    * <!-- end-user-doc -->
295    * @generated
296    */

297   public boolean eIsSet(EStructuralFeature eFeature)
298   {
299     switch (eDerivedStructuralFeatureID(eFeature))
300     {
301       case XMLTypePackage.SIMPLE_ANY_TYPE__MIXED:
302         return mixed != null && !mixed.isEmpty();
303       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY:
304         return !getAny().isEmpty();
305       case XMLTypePackage.SIMPLE_ANY_TYPE__ANY_ATTRIBUTE:
306         return anyAttribute != null && !anyAttribute.isEmpty();
307       case XMLTypePackage.SIMPLE_ANY_TYPE__RAW_VALUE:
308         return RAW_VALUE_EDEFAULT == null ? getRawValue() != null : !RAW_VALUE_EDEFAULT.equals(getRawValue());
309       case XMLTypePackage.SIMPLE_ANY_TYPE__VALUE:
310         return VALUE_EDEFAULT == null ? getValue() != null : !VALUE_EDEFAULT.equals(getValue());
311       case XMLTypePackage.SIMPLE_ANY_TYPE__INSTANCE_TYPE:
312         return instanceType != null;
313     }
314     return eDynamicIsSet(eFeature);
315   }
316
317 } //SimpleAnyTypeImpl
318
Popular Tags