1 /**
2  * <copyright>
3  * </copyright>
4  *
5 
6  */
7 package org.wesnoth.wml.impl;
8 
9 import java.util.Collection;
10 
11 import org.eclipse.emf.common.notify.Notification;
12 import org.eclipse.emf.common.notify.NotificationChain;
13 
14 import org.eclipse.emf.common.util.EList;
15 
16 import org.eclipse.emf.ecore.EClass;
17 import org.eclipse.emf.ecore.InternalEObject;
18 
19 import org.eclipse.emf.ecore.impl.ENotificationImpl;
20 
21 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
22 import org.eclipse.emf.ecore.util.InternalEList;
23 
24 import org.wesnoth.wml.WMLExpression;
25 import org.wesnoth.wml.WMLKey;
26 import org.wesnoth.wml.WMLTag;
27 import org.wesnoth.wml.WmlPackage;
28 
29 /**
30  * <!-- begin-user-doc -->
31  * An implementation of the model object '<em><b>WML Tag</b></em>'.
32  * <!-- end-user-doc -->
33  * <p>
34  * The following features are implemented:
35  * <ul>
36  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#getPlus <em>Plus</em>}</li>
37  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#getExpressions <em>Expressions</em>}</li>
38  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#getEndName <em>End Name</em>}</li>
39  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#get_InhertedTagName <em>Inherted Tag Name</em>}</li>
40  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#is_NeedingExpansion <em>Needing Expansion</em>}</li>
41  *   <li>{@link org.wesnoth.wml.impl.WMLTagImpl#get_Description <em>Description</em>}</li>
42  * </ul>
43  * </p>
44  *
45  * @generated
46  */
47 public class WMLTagImpl extends WMLRootExpressionImpl implements WMLTag
48 {
49   /**
50    * <!-- begin-user-doc -->
51    * <!-- end-user-doc -->
52    * @generated
53    */
54   private static final long serialVersionUID = 1L;
55 
56   /**
57    * The default value of the '{@link #getPlus() <em>Plus</em>}' attribute.
58    * <!-- begin-user-doc -->
59    * <!-- end-user-doc -->
60    * @see #getPlus()
61    * @generated
62    * @ordered
63    */
64   protected static final String PLUS_EDEFAULT = "";
65 
66   /**
67    * The cached value of the '{@link #getPlus() <em>Plus</em>}' attribute.
68    * <!-- begin-user-doc -->
69    * <!-- end-user-doc -->
70    * @see #getPlus()
71    * @generated
72    * @ordered
73    */
74   protected String plus = PLUS_EDEFAULT;
75 
76   /**
77    * The cached value of the '{@link #getExpressions() <em>Expressions</em>}' containment reference list.
78    * <!-- begin-user-doc -->
79    * <!-- end-user-doc -->
80    * @see #getExpressions()
81    * @generated
82    * @ordered
83    */
84   protected EList<WMLExpression> expressions;
85 
86   /**
87    * The default value of the '{@link #getEndName() <em>End Name</em>}' attribute.
88    * <!-- begin-user-doc -->
89    * <!-- end-user-doc -->
90    * @see #getEndName()
91    * @generated
92    * @ordered
93    */
94   protected static final String END_NAME_EDEFAULT = "";
95 
96   /**
97    * The cached value of the '{@link #getEndName() <em>End Name</em>}' attribute.
98    * <!-- begin-user-doc -->
99    * <!-- end-user-doc -->
100    * @see #getEndName()
101    * @generated
102    * @ordered
103    */
104   protected String endName = END_NAME_EDEFAULT;
105 
106   /**
107    * The default value of the '{@link #get_InhertedTagName() <em>Inherted Tag Name</em>}' attribute.
108    * <!-- begin-user-doc -->
109    * <!-- end-user-doc -->
110    * @see #get_InhertedTagName()
111    * @generated
112    * @ordered
113    */
114   protected static final String _INHERTED_TAG_NAME_EDEFAULT = "";
115 
116   /**
117    * The cached value of the '{@link #get_InhertedTagName() <em>Inherted Tag Name</em>}' attribute.
118    * <!-- begin-user-doc -->
119    * <!-- end-user-doc -->
120    * @see #get_InhertedTagName()
121    * @generated
122    * @ordered
123    */
124   protected String _InhertedTagName = _INHERTED_TAG_NAME_EDEFAULT;
125 
126   /**
127    * The default value of the '{@link #is_NeedingExpansion() <em>Needing Expansion</em>}' attribute.
128    * <!-- begin-user-doc -->
129    * <!-- end-user-doc -->
130    * @see #is_NeedingExpansion()
131    * @generated
132    * @ordered
133    */
134   protected static final boolean _NEEDING_EXPANSION_EDEFAULT = false;
135 
136   /**
137    * The cached value of the '{@link #is_NeedingExpansion() <em>Needing Expansion</em>}' attribute.
138    * <!-- begin-user-doc -->
139    * <!-- end-user-doc -->
140    * @see #is_NeedingExpansion()
141    * @generated
142    * @ordered
143    */
144   protected boolean _NeedingExpansion = _NEEDING_EXPANSION_EDEFAULT;
145 
146   /**
147    * The default value of the '{@link #get_Description() <em>Description</em>}' attribute.
148    * <!-- begin-user-doc -->
149    * <!-- end-user-doc -->
150    * @see #get_Description()
151    * @generated
152    * @ordered
153    */
154   protected static final String _DESCRIPTION_EDEFAULT = "";
155 
156   /**
157    * The cached value of the '{@link #get_Description() <em>Description</em>}' attribute.
158    * <!-- begin-user-doc -->
159    * <!-- end-user-doc -->
160    * @see #get_Description()
161    * @generated
162    * @ordered
163    */
164   protected String _Description = _DESCRIPTION_EDEFAULT;
165 
166   /**
167    * <!-- begin-user-doc -->
168    * <!-- end-user-doc -->
169    * @generated
170    */
WMLTagImpl()171   protected WMLTagImpl()
172   {
173     super();
174   }
175 
176   /**
177    * <!-- begin-user-doc -->
178    * <!-- end-user-doc -->
179    * @generated
180    */
181   @Override
eStaticClass()182   protected EClass eStaticClass()
183   {
184     return WmlPackage.Literals.WML_TAG;
185   }
186 
187   /**
188    * <!-- begin-user-doc -->
189    * <!-- end-user-doc -->
190    * @generated
191    */
getPlus()192   public String getPlus()
193   {
194     return plus;
195   }
196 
197   /**
198    * <!-- begin-user-doc -->
199    * <!-- end-user-doc -->
200    * @generated
201    */
setPlus(String newPlus)202   public void setPlus(String newPlus)
203   {
204     String oldPlus = plus;
205     plus = newPlus;
206     if (eNotificationRequired())
207       eNotify(new ENotificationImpl(this, Notification.SET, WmlPackage.WML_TAG__PLUS, oldPlus, plus));
208   }
209 
210   /**
211    * <!-- begin-user-doc -->
212    * <!-- end-user-doc -->
213    * @generated
214    */
getExpressions()215   public EList<WMLExpression> getExpressions()
216   {
217     if (expressions == null)
218     {
219       expressions = new EObjectContainmentEList<WMLExpression>(WMLExpression.class, this, WmlPackage.WML_TAG__EXPRESSIONS);
220     }
221     return expressions;
222   }
223 
224   /**
225    * <!-- begin-user-doc -->
226    * <!-- end-user-doc -->
227    * @generated
228    */
getEndName()229   public String getEndName()
230   {
231     return endName;
232   }
233 
234   /**
235    * <!-- begin-user-doc -->
236    * <!-- end-user-doc -->
237    * @generated
238    */
setEndName(String newEndName)239   public void setEndName(String newEndName)
240   {
241     String oldEndName = endName;
242     endName = newEndName;
243     if (eNotificationRequired())
244       eNotify(new ENotificationImpl(this, Notification.SET, WmlPackage.WML_TAG__END_NAME, oldEndName, endName));
245   }
246 
247   /**
248    * <!-- begin-user-doc -->
249    * <!-- end-user-doc -->
250    * @generated
251    */
get_InhertedTagName()252   public String get_InhertedTagName()
253   {
254     return _InhertedTagName;
255   }
256 
257   /**
258    * <!-- begin-user-doc -->
259    * <!-- end-user-doc -->
260    * @generated
261    */
set_InhertedTagName(String new_InhertedTagName)262   public void set_InhertedTagName(String new_InhertedTagName)
263   {
264     String old_InhertedTagName = _InhertedTagName;
265     _InhertedTagName = new_InhertedTagName;
266     if (eNotificationRequired())
267       eNotify(new ENotificationImpl(this, Notification.SET, WmlPackage.WML_TAG__INHERTED_TAG_NAME, old_InhertedTagName, _InhertedTagName));
268   }
269 
270   /**
271    * <!-- begin-user-doc -->
272    * <!-- end-user-doc -->
273    * @generated
274    */
is_NeedingExpansion()275   public boolean is_NeedingExpansion()
276   {
277     return _NeedingExpansion;
278   }
279 
280   /**
281    * <!-- begin-user-doc -->
282    * <!-- end-user-doc -->
283    * @generated
284    */
set_NeedingExpansion(boolean new_NeedingExpansion)285   public void set_NeedingExpansion(boolean new_NeedingExpansion)
286   {
287     boolean old_NeedingExpansion = _NeedingExpansion;
288     _NeedingExpansion = new_NeedingExpansion;
289     if (eNotificationRequired())
290       eNotify(new ENotificationImpl(this, Notification.SET, WmlPackage.WML_TAG__NEEDING_EXPANSION, old_NeedingExpansion, _NeedingExpansion));
291   }
292 
293   /**
294    * <!-- begin-user-doc -->
295    * <!-- end-user-doc -->
296    * @generated
297    */
get_Description()298   public String get_Description()
299   {
300     return _Description;
301   }
302 
303   /**
304    * <!-- begin-user-doc -->
305    * <!-- end-user-doc -->
306    * @generated
307    */
set_Description(String new_Description)308   public void set_Description(String new_Description)
309   {
310     String old_Description = _Description;
311     _Description = new_Description;
312     if (eNotificationRequired())
313       eNotify(new ENotificationImpl(this, Notification.SET, WmlPackage.WML_TAG__DESCRIPTION, old_Description, _Description));
314   }
315 
316   /**
317    * <!-- begin-user-doc -->
318    * <!-- end-user-doc -->
319    * @generated
320    */
getWMLTags()321   public EList<WMLTag> getWMLTags()
322   {
323     EList<WMLTag> result = new org.eclipse.emf.common.util.BasicEList<WMLTag>();
324             for ( WMLExpression expression : getExpressions( ) ) {
325                 if ( expression.isWMLTag( ) )
326                     result.add( expression.asWMLTag( ) );
327             }
328 
329             return result;
330   }
331 
332   /**
333    * <!-- begin-user-doc -->
334    * <!-- end-user-doc -->
335    * @generated
336    */
getWMLKeys()337   public EList<WMLKey> getWMLKeys()
338   {
339     EList<WMLKey> result = new org.eclipse.emf.common.util.BasicEList<WMLKey>();
340             for ( WMLExpression expression : getExpressions( ) ) {
341                 if ( expression.isWMLKey( ) )
342                     result.add( expression.asWMLKey( ) );
343             }
344 
345             return result;
346   }
347 
348   /**
349    * <!-- begin-user-doc -->
350    * <!-- end-user-doc -->
351    * @generated
352    */
353   @Override
eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)354   public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs)
355   {
356     switch (featureID)
357     {
358       case WmlPackage.WML_TAG__EXPRESSIONS:
359         return ((InternalEList<?>)getExpressions()).basicRemove(otherEnd, msgs);
360     }
361     return super.eInverseRemove(otherEnd, featureID, msgs);
362   }
363 
364   /**
365    * <!-- begin-user-doc -->
366    * <!-- end-user-doc -->
367    * @generated
368    */
369   @Override
eGet(int featureID, boolean resolve, boolean coreType)370   public Object eGet(int featureID, boolean resolve, boolean coreType)
371   {
372     switch (featureID)
373     {
374       case WmlPackage.WML_TAG__PLUS:
375         return getPlus();
376       case WmlPackage.WML_TAG__EXPRESSIONS:
377         return getExpressions();
378       case WmlPackage.WML_TAG__END_NAME:
379         return getEndName();
380       case WmlPackage.WML_TAG__INHERTED_TAG_NAME:
381         return get_InhertedTagName();
382       case WmlPackage.WML_TAG__NEEDING_EXPANSION:
383         return is_NeedingExpansion();
384       case WmlPackage.WML_TAG__DESCRIPTION:
385         return get_Description();
386     }
387     return super.eGet(featureID, resolve, coreType);
388   }
389 
390   /**
391    * <!-- begin-user-doc -->
392    * <!-- end-user-doc -->
393    * @generated
394    */
395   @SuppressWarnings("unchecked")
396   @Override
eSet(int featureID, Object newValue)397   public void eSet(int featureID, Object newValue)
398   {
399     switch (featureID)
400     {
401       case WmlPackage.WML_TAG__PLUS:
402         setPlus((String)newValue);
403         return;
404       case WmlPackage.WML_TAG__EXPRESSIONS:
405         getExpressions().clear();
406         getExpressions().addAll((Collection<? extends WMLExpression>)newValue);
407         return;
408       case WmlPackage.WML_TAG__END_NAME:
409         setEndName((String)newValue);
410         return;
411       case WmlPackage.WML_TAG__INHERTED_TAG_NAME:
412         set_InhertedTagName((String)newValue);
413         return;
414       case WmlPackage.WML_TAG__NEEDING_EXPANSION:
415         set_NeedingExpansion((Boolean)newValue);
416         return;
417       case WmlPackage.WML_TAG__DESCRIPTION:
418         set_Description((String)newValue);
419         return;
420     }
421     super.eSet(featureID, newValue);
422   }
423 
424   /**
425    * <!-- begin-user-doc -->
426    * <!-- end-user-doc -->
427    * @generated
428    */
429   @Override
eUnset(int featureID)430   public void eUnset(int featureID)
431   {
432     switch (featureID)
433     {
434       case WmlPackage.WML_TAG__PLUS:
435         setPlus(PLUS_EDEFAULT);
436         return;
437       case WmlPackage.WML_TAG__EXPRESSIONS:
438         getExpressions().clear();
439         return;
440       case WmlPackage.WML_TAG__END_NAME:
441         setEndName(END_NAME_EDEFAULT);
442         return;
443       case WmlPackage.WML_TAG__INHERTED_TAG_NAME:
444         set_InhertedTagName(_INHERTED_TAG_NAME_EDEFAULT);
445         return;
446       case WmlPackage.WML_TAG__NEEDING_EXPANSION:
447         set_NeedingExpansion(_NEEDING_EXPANSION_EDEFAULT);
448         return;
449       case WmlPackage.WML_TAG__DESCRIPTION:
450         set_Description(_DESCRIPTION_EDEFAULT);
451         return;
452     }
453     super.eUnset(featureID);
454   }
455 
456   /**
457    * <!-- begin-user-doc -->
458    * <!-- end-user-doc -->
459    * @generated
460    */
461   @Override
eIsSet(int featureID)462   public boolean eIsSet(int featureID)
463   {
464     switch (featureID)
465     {
466       case WmlPackage.WML_TAG__PLUS:
467         return PLUS_EDEFAULT == null ? plus != null : !PLUS_EDEFAULT.equals(plus);
468       case WmlPackage.WML_TAG__EXPRESSIONS:
469         return expressions != null && !expressions.isEmpty();
470       case WmlPackage.WML_TAG__END_NAME:
471         return END_NAME_EDEFAULT == null ? endName != null : !END_NAME_EDEFAULT.equals(endName);
472       case WmlPackage.WML_TAG__INHERTED_TAG_NAME:
473         return _INHERTED_TAG_NAME_EDEFAULT == null ? _InhertedTagName != null : !_INHERTED_TAG_NAME_EDEFAULT.equals(_InhertedTagName);
474       case WmlPackage.WML_TAG__NEEDING_EXPANSION:
475         return _NeedingExpansion != _NEEDING_EXPANSION_EDEFAULT;
476       case WmlPackage.WML_TAG__DESCRIPTION:
477         return _DESCRIPTION_EDEFAULT == null ? _Description != null : !_DESCRIPTION_EDEFAULT.equals(_Description);
478     }
479     return super.eIsSet(featureID);
480   }
481 
482   /**
483    * <!-- begin-user-doc -->
484    * <!-- end-user-doc -->
485    * @generated
486    */
487   @Override
toString()488   public String toString()
489   {
490     if (eIsProxy()) return super.toString();
491 
492     StringBuffer result = new StringBuffer(super.toString());
493     result.append(" (plus: ");
494     result.append(plus);
495     result.append(", endName: ");
496     result.append(endName);
497     result.append(", _InhertedTagName: ");
498     result.append(_InhertedTagName);
499     result.append(", _NeedingExpansion: ");
500     result.append(_NeedingExpansion);
501     result.append(", _Description: ");
502     result.append(_Description);
503     result.append(')');
504     return result.toString();
505   }
506 
507 } //WMLTagImpl
508