View Javadoc

1   /**
2    * <copyright>
3    * </copyright>
4    *
5    * $Id$
6    */
7   package BusinessDomainDsl.impl;
8   
9   import BusinessDomainDsl.AbstractType;
10  import BusinessDomainDsl.BusinessDomainDslPackage;
11  import BusinessDomainDsl.PersistencyMode;
12  import BusinessDomainDsl.Property;
13  
14  import org.eclipse.emf.common.notify.Notification;
15  import org.eclipse.emf.common.notify.NotificationChain;
16  
17  import org.eclipse.emf.ecore.EClass;
18  import org.eclipse.emf.ecore.InternalEObject;
19  
20  import org.eclipse.emf.ecore.impl.ENotificationImpl;
21  
22  import org.eclipse.emf.ecore.util.EcoreUtil;
23  
24  /**
25   * <!-- begin-user-doc -->
26   * An implementation of the model object '<em><b>Property</b></em>'.
27   * <!-- end-user-doc -->
28   * <p>
29   * The following features are implemented:
30   * <ul>
31   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#getDataType <em>Data Type</em>}</li>
32   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#isNullable <em>Nullable</em>}</li>
33   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#isDerived <em>Derived</em>}</li>
34   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#isWritable <em>Writable</em>}</li>
35   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#getPersistency <em>Persistency</em>}</li>
36   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#isHasDefault <em>Has Default</em>}</li>
37   *   <li>{@link BusinessDomainDsl.impl.PropertyImpl#getOwningType <em>Owning Type</em>}</li>
38   * </ul>
39   * </p>
40   *
41   * @generated
42   */
43  public class PropertyImpl extends ModelElementImpl implements Property {
44  	/**
45       * The default value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
46       * <!-- begin-user-doc -->
47  	 * <!-- end-user-doc -->
48       * @see #getDataType()
49       * @generated
50       * @ordered
51       */
52  	protected static final String DATA_TYPE_EDEFAULT = null;
53  
54  	/**
55       * The cached value of the '{@link #getDataType() <em>Data Type</em>}' attribute.
56       * <!-- begin-user-doc -->
57  	 * <!-- end-user-doc -->
58       * @see #getDataType()
59       * @generated
60       * @ordered
61       */
62  	protected String dataType = DATA_TYPE_EDEFAULT;
63  
64  	/**
65       * The default value of the '{@link #isNullable() <em>Nullable</em>}' attribute.
66       * <!-- begin-user-doc -->
67  	 * <!-- end-user-doc -->
68       * @see #isNullable()
69       * @generated
70       * @ordered
71       */
72  	protected static final boolean NULLABLE_EDEFAULT = false;
73  
74  	/**
75       * The cached value of the '{@link #isNullable() <em>Nullable</em>}' attribute.
76       * <!-- begin-user-doc -->
77  	 * <!-- end-user-doc -->
78       * @see #isNullable()
79       * @generated
80       * @ordered
81       */
82  	protected boolean nullable = NULLABLE_EDEFAULT;
83  
84  	/**
85       * The default value of the '{@link #isDerived() <em>Derived</em>}' attribute.
86       * <!-- begin-user-doc -->
87       * <!-- end-user-doc -->
88       * @see #isDerived()
89       * @generated
90       * @ordered
91       */
92      protected static final boolean DERIVED_EDEFAULT = false;
93  
94      /**
95       * The cached value of the '{@link #isDerived() <em>Derived</em>}' attribute.
96       * <!-- begin-user-doc -->
97       * <!-- end-user-doc -->
98       * @see #isDerived()
99       * @generated
100      * @ordered
101      */
102     protected boolean derived = DERIVED_EDEFAULT;
103 
104     /**
105      * The default value of the '{@link #isWritable() <em>Writable</em>}' attribute.
106      * <!-- begin-user-doc -->
107 	 * <!-- end-user-doc -->
108      * @see #isWritable()
109      * @generated
110      * @ordered
111      */
112 	protected static final boolean WRITABLE_EDEFAULT = false;
113 
114 				/**
115      * The cached value of the '{@link #isWritable() <em>Writable</em>}' attribute.
116      * <!-- begin-user-doc -->
117 	 * <!-- end-user-doc -->
118      * @see #isWritable()
119      * @generated
120      * @ordered
121      */
122 	protected boolean writable = WRITABLE_EDEFAULT;
123 
124 				/**
125      * The default value of the '{@link #getPersistency() <em>Persistency</em>}' attribute.
126      * <!-- begin-user-doc -->
127 	 * <!-- end-user-doc -->
128      * @see #getPersistency()
129      * @generated
130      * @ordered
131      */
132 	protected static final PersistencyMode PERSISTENCY_EDEFAULT = PersistencyMode.READ_WRITE;
133 
134 	/**
135      * The cached value of the '{@link #getPersistency() <em>Persistency</em>}' attribute.
136      * <!-- begin-user-doc -->
137 	 * <!-- end-user-doc -->
138      * @see #getPersistency()
139      * @generated
140      * @ordered
141      */
142 	protected PersistencyMode persistency = PERSISTENCY_EDEFAULT;
143 
144 	/**
145      * The default value of the '{@link #isHasDefault() <em>Has Default</em>}' attribute.
146      * <!-- begin-user-doc -->
147 	 * <!-- end-user-doc -->
148      * @see #isHasDefault()
149      * @generated
150      * @ordered
151      */
152 	protected static final boolean HAS_DEFAULT_EDEFAULT = false;
153 
154 	/**
155      * The cached value of the '{@link #isHasDefault() <em>Has Default</em>}' attribute.
156      * <!-- begin-user-doc -->
157 	 * <!-- end-user-doc -->
158      * @see #isHasDefault()
159      * @generated
160      * @ordered
161      */
162 	protected boolean hasDefault = HAS_DEFAULT_EDEFAULT;
163 
164 	/**
165      * <!-- begin-user-doc -->
166 	 * <!-- end-user-doc -->
167      * @generated
168      */
169 	protected PropertyImpl() {
170         super();
171     }
172 
173 	/**
174      * <!-- begin-user-doc -->
175 	 * <!-- end-user-doc -->
176      * @generated
177      */
178 	@Override
179 	protected EClass eStaticClass() {
180         return BusinessDomainDslPackage.Literals.PROPERTY;
181     }
182 
183 	/**
184      * <!-- begin-user-doc -->
185 	 * <!-- end-user-doc -->
186      * @generated
187      */
188 	public String getDataType() {
189         return dataType;
190     }
191 
192 	/**
193      * <!-- begin-user-doc -->
194 	 * <!-- end-user-doc -->
195      * @generated
196      */
197 	public void setDataType(String newDataType) {
198         String oldDataType = dataType;
199         dataType = newDataType;
200         if (eNotificationRequired())
201             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__DATA_TYPE, oldDataType, dataType));
202     }
203 
204 	/**
205      * <!-- begin-user-doc -->
206 	 * <!-- end-user-doc -->
207      * @generated
208      */
209 	public boolean isNullable() {
210         return nullable;
211     }
212 
213 	/**
214      * <!-- begin-user-doc -->
215 	 * <!-- end-user-doc -->
216      * @generated
217      */
218 	public void setNullable(boolean newNullable) {
219         boolean oldNullable = nullable;
220         nullable = newNullable;
221         if (eNotificationRequired())
222             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__NULLABLE, oldNullable, nullable));
223     }
224 
225 	/**
226      * <!-- begin-user-doc -->
227      * <!-- end-user-doc -->
228      * @generated
229      */
230     public boolean isDerived() {
231         return derived;
232     }
233 
234     /**
235      * <!-- begin-user-doc -->
236      * <!-- end-user-doc -->
237      * @generated
238      */
239     public void setDerived(boolean newDerived) {
240         boolean oldDerived = derived;
241         derived = newDerived;
242         if (eNotificationRequired())
243             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__DERIVED, oldDerived, derived));
244     }
245 
246     /**
247      * <!-- begin-user-doc -->
248 	 * <!-- end-user-doc -->
249      * @generated
250      */
251 	public boolean isWritable() {
252         return writable;
253     }
254 
255 				/**
256      * <!-- begin-user-doc -->
257 	 * <!-- end-user-doc -->
258      * @generated
259      */
260 	public void setWritable(boolean newWritable) {
261         boolean oldWritable = writable;
262         writable = newWritable;
263         if (eNotificationRequired())
264             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__WRITABLE, oldWritable, writable));
265     }
266 
267 				/**
268      * <!-- begin-user-doc -->
269 	 * <!-- end-user-doc -->
270      * @generated
271      */
272 	public PersistencyMode getPersistency() {
273         return persistency;
274     }
275 
276 	/**
277      * <!-- begin-user-doc -->
278 	 * <!-- end-user-doc -->
279      * @generated
280      */
281 	public void setPersistency(PersistencyMode newPersistency) {
282         PersistencyMode oldPersistency = persistency;
283         persistency = newPersistency == null ? PERSISTENCY_EDEFAULT : newPersistency;
284         if (eNotificationRequired())
285             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__PERSISTENCY, oldPersistency, persistency));
286     }
287 
288 	/**
289      * <!-- begin-user-doc -->
290 	 * <!-- end-user-doc -->
291      * @generated
292      */
293 	public boolean isHasDefault() {
294         return hasDefault;
295     }
296 
297 	/**
298      * <!-- begin-user-doc -->
299 	 * <!-- end-user-doc -->
300      * @generated
301      */
302 	public void setHasDefault(boolean newHasDefault) {
303         boolean oldHasDefault = hasDefault;
304         hasDefault = newHasDefault;
305         if (eNotificationRequired())
306             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__HAS_DEFAULT, oldHasDefault, hasDefault));
307     }
308 
309 	/**
310      * <!-- begin-user-doc -->
311 	 * <!-- end-user-doc -->
312      * @generated
313      */
314 	public AbstractType getOwningType() {
315         if (eContainerFeatureID() != BusinessDomainDslPackage.PROPERTY__OWNING_TYPE) return null;
316         return (AbstractType)eContainer();
317     }
318 
319 	/**
320      * <!-- begin-user-doc -->
321 	 * <!-- end-user-doc -->
322      * @generated
323      */
324 	public NotificationChain basicSetOwningType(AbstractType newOwningType, NotificationChain msgs) {
325         msgs = eBasicSetContainer((InternalEObject)newOwningType, BusinessDomainDslPackage.PROPERTY__OWNING_TYPE, msgs);
326         return msgs;
327     }
328 
329 	/**
330      * <!-- begin-user-doc -->
331 	 * <!-- end-user-doc -->
332      * @generated
333      */
334 	public void setOwningType(AbstractType newOwningType) {
335         if (newOwningType != eInternalContainer() || (eContainerFeatureID() != BusinessDomainDslPackage.PROPERTY__OWNING_TYPE && newOwningType != null)) {
336             if (EcoreUtil.isAncestor(this, newOwningType))
337                 throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
338             NotificationChain msgs = null;
339             if (eInternalContainer() != null)
340                 msgs = eBasicRemoveFromContainer(msgs);
341             if (newOwningType != null)
342                 msgs = ((InternalEObject)newOwningType).eInverseAdd(this, BusinessDomainDslPackage.ABSTRACT_TYPE__PROPERTIES, AbstractType.class, msgs);
343             msgs = basicSetOwningType(newOwningType, msgs);
344             if (msgs != null) msgs.dispatch();
345         }
346         else if (eNotificationRequired())
347             eNotify(new ENotificationImpl(this, Notification.SET, BusinessDomainDslPackage.PROPERTY__OWNING_TYPE, newOwningType, newOwningType));
348     }
349 
350 	/**
351      * <!-- begin-user-doc -->
352 	 * <!-- end-user-doc -->
353      * @generated
354      */
355 	@Override
356 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
357         switch (featureID) {
358             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
359                 if (eInternalContainer() != null)
360                     msgs = eBasicRemoveFromContainer(msgs);
361                 return basicSetOwningType((AbstractType)otherEnd, msgs);
362         }
363         return super.eInverseAdd(otherEnd, featureID, msgs);
364     }
365 
366 	/**
367      * <!-- begin-user-doc -->
368 	 * <!-- end-user-doc -->
369      * @generated
370      */
371 	@Override
372 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
373         switch (featureID) {
374             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
375                 return basicSetOwningType(null, msgs);
376         }
377         return super.eInverseRemove(otherEnd, featureID, msgs);
378     }
379 
380 	/**
381      * <!-- begin-user-doc -->
382 	 * <!-- end-user-doc -->
383      * @generated
384      */
385 	@Override
386 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
387         switch (eContainerFeatureID()) {
388             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
389                 return eInternalContainer().eInverseRemove(this, BusinessDomainDslPackage.ABSTRACT_TYPE__PROPERTIES, AbstractType.class, msgs);
390         }
391         return super.eBasicRemoveFromContainerFeature(msgs);
392     }
393 
394 	/**
395      * <!-- begin-user-doc -->
396 	 * <!-- end-user-doc -->
397      * @generated
398      */
399 	@Override
400 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
401         switch (featureID) {
402             case BusinessDomainDslPackage.PROPERTY__DATA_TYPE:
403                 return getDataType();
404             case BusinessDomainDslPackage.PROPERTY__NULLABLE:
405                 return isNullable();
406             case BusinessDomainDslPackage.PROPERTY__DERIVED:
407                 return isDerived();
408             case BusinessDomainDslPackage.PROPERTY__WRITABLE:
409                 return isWritable();
410             case BusinessDomainDslPackage.PROPERTY__PERSISTENCY:
411                 return getPersistency();
412             case BusinessDomainDslPackage.PROPERTY__HAS_DEFAULT:
413                 return isHasDefault();
414             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
415                 return getOwningType();
416         }
417         return super.eGet(featureID, resolve, coreType);
418     }
419 
420 	/**
421      * <!-- begin-user-doc -->
422 	 * <!-- end-user-doc -->
423      * @generated
424      */
425 	@Override
426 	public void eSet(int featureID, Object newValue) {
427         switch (featureID) {
428             case BusinessDomainDslPackage.PROPERTY__DATA_TYPE:
429                 setDataType((String)newValue);
430                 return;
431             case BusinessDomainDslPackage.PROPERTY__NULLABLE:
432                 setNullable((Boolean)newValue);
433                 return;
434             case BusinessDomainDslPackage.PROPERTY__DERIVED:
435                 setDerived((Boolean)newValue);
436                 return;
437             case BusinessDomainDslPackage.PROPERTY__WRITABLE:
438                 setWritable((Boolean)newValue);
439                 return;
440             case BusinessDomainDslPackage.PROPERTY__PERSISTENCY:
441                 setPersistency((PersistencyMode)newValue);
442                 return;
443             case BusinessDomainDslPackage.PROPERTY__HAS_DEFAULT:
444                 setHasDefault((Boolean)newValue);
445                 return;
446             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
447                 setOwningType((AbstractType)newValue);
448                 return;
449         }
450         super.eSet(featureID, newValue);
451     }
452 
453 	/**
454      * <!-- begin-user-doc -->
455 	 * <!-- end-user-doc -->
456      * @generated
457      */
458 	@Override
459 	public void eUnset(int featureID) {
460         switch (featureID) {
461             case BusinessDomainDslPackage.PROPERTY__DATA_TYPE:
462                 setDataType(DATA_TYPE_EDEFAULT);
463                 return;
464             case BusinessDomainDslPackage.PROPERTY__NULLABLE:
465                 setNullable(NULLABLE_EDEFAULT);
466                 return;
467             case BusinessDomainDslPackage.PROPERTY__DERIVED:
468                 setDerived(DERIVED_EDEFAULT);
469                 return;
470             case BusinessDomainDslPackage.PROPERTY__WRITABLE:
471                 setWritable(WRITABLE_EDEFAULT);
472                 return;
473             case BusinessDomainDslPackage.PROPERTY__PERSISTENCY:
474                 setPersistency(PERSISTENCY_EDEFAULT);
475                 return;
476             case BusinessDomainDslPackage.PROPERTY__HAS_DEFAULT:
477                 setHasDefault(HAS_DEFAULT_EDEFAULT);
478                 return;
479             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
480                 setOwningType((AbstractType)null);
481                 return;
482         }
483         super.eUnset(featureID);
484     }
485 
486 	/**
487      * <!-- begin-user-doc -->
488 	 * <!-- end-user-doc -->
489      * @generated
490      */
491 	@Override
492 	public boolean eIsSet(int featureID) {
493         switch (featureID) {
494             case BusinessDomainDslPackage.PROPERTY__DATA_TYPE:
495                 return DATA_TYPE_EDEFAULT == null ? dataType != null : !DATA_TYPE_EDEFAULT.equals(dataType);
496             case BusinessDomainDslPackage.PROPERTY__NULLABLE:
497                 return nullable != NULLABLE_EDEFAULT;
498             case BusinessDomainDslPackage.PROPERTY__DERIVED:
499                 return derived != DERIVED_EDEFAULT;
500             case BusinessDomainDslPackage.PROPERTY__WRITABLE:
501                 return writable != WRITABLE_EDEFAULT;
502             case BusinessDomainDslPackage.PROPERTY__PERSISTENCY:
503                 return persistency != PERSISTENCY_EDEFAULT;
504             case BusinessDomainDslPackage.PROPERTY__HAS_DEFAULT:
505                 return hasDefault != HAS_DEFAULT_EDEFAULT;
506             case BusinessDomainDslPackage.PROPERTY__OWNING_TYPE:
507                 return getOwningType() != null;
508         }
509         return super.eIsSet(featureID);
510     }
511 
512 	/**
513      * <!-- begin-user-doc -->
514 	 * <!-- end-user-doc -->
515      * @generated
516      */
517 	@Override
518 	public String toString() {
519         if (eIsProxy()) return super.toString();
520 
521         StringBuffer result = new StringBuffer(super.toString());
522         result.append(" (dataType: ");
523         result.append(dataType);
524         result.append(", nullable: ");
525         result.append(nullable);
526         result.append(", derived: ");
527         result.append(derived);
528         result.append(", writable: ");
529         result.append(writable);
530         result.append(", persistency: ");
531         result.append(persistency);
532         result.append(", hasDefault: ");
533         result.append(hasDefault);
534         result.append(')');
535         return result.toString();
536     }
537 
538 } //PropertyImpl