3 package org.opendaylight.nemo.tool.eclipse.plugin.editor.impl;
5 import java.util.Collection;
7 import org.eclipse.emf.common.notify.Notification;
9 import org.eclipse.emf.common.util.EList;
11 import org.eclipse.emf.ecore.EClass;
13 import org.eclipse.emf.ecore.impl.ENotificationImpl;
15 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
17 import org.opendaylight.nemo.tool.eclipse.plugin.editor.EditorPackage;
18 import org.opendaylight.nemo.tool.eclipse.plugin.editor.Node;
21 * <!-- begin-user-doc -->
22 * An implementation of the model object '<em><b>Node</b></em>'.
23 * <!-- end-user-doc -->
25 * The following features are implemented:
28 * <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl#getName <em>Name</em>}</li>
29 * <li>{@link org.opendaylight.nemo.tool.eclipse.plugin.editor.impl.NodeImpl#getNodes <em>Nodes</em>}</li>
34 public class NodeImpl extends SentenceImpl implements Node
37 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
44 protected static final String NAME_EDEFAULT = null;
47 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
54 protected String name = NAME_EDEFAULT;
57 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
64 protected EList<Node> nodes;
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
82 protected EClass eStaticClass()
84 return EditorPackage.Literals.NODE;
88 * <!-- begin-user-doc -->
89 * <!-- end-user-doc -->
92 public String getName()
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
102 public void setName(String newName)
104 String oldName = name;
106 if (eNotificationRequired())
107 eNotify(new ENotificationImpl(this, Notification.SET, EditorPackage.NODE__NAME, oldName, name));
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
115 public EList<Node> getNodes()
119 nodes = new EObjectResolvingEList<Node>(Node.class, this, EditorPackage.NODE__NODES);
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
130 public Object eGet(int featureID, boolean resolve, boolean coreType)
134 case EditorPackage.NODE__NAME:
136 case EditorPackage.NODE__NODES:
139 return super.eGet(featureID, resolve, coreType);
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
147 @SuppressWarnings("unchecked")
149 public void eSet(int featureID, Object newValue)
153 case EditorPackage.NODE__NAME:
154 setName((String)newValue);
156 case EditorPackage.NODE__NODES:
158 getNodes().addAll((Collection<? extends Node>)newValue);
161 super.eSet(featureID, newValue);
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
170 public void eUnset(int featureID)
174 case EditorPackage.NODE__NAME:
175 setName(NAME_EDEFAULT);
177 case EditorPackage.NODE__NODES:
181 super.eUnset(featureID);
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
190 public boolean eIsSet(int featureID)
194 case EditorPackage.NODE__NAME:
195 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
196 case EditorPackage.NODE__NODES:
197 return nodes != null && !nodes.isEmpty();
199 return super.eIsSet(featureID);
203 * <!-- begin-user-doc -->
204 * <!-- end-user-doc -->
208 public String toString()
210 if (eIsProxy()) return super.toString();
212 StringBuffer result = new StringBuffer(super.toString());
213 result.append(" (name: ");
216 return result.toString();