001 /**
002 * <copyright>
003 * </copyright>
004 *
005 * $Id$
006 */
007 package com.hammurapi.reasoning.spi.model.impl;
008
009 import com.hammurapi.config.impl.NamedObjectDefinitionImpl;
010
011 import com.hammurapi.reasoning.spi.model.ModelPackage;
012 import com.hammurapi.reasoning.spi.model.Rule;
013 import com.hammurapi.reasoning.spi.model.RuleSet;
014
015 import java.util.Collection;
016
017 import org.eclipse.emf.common.notify.NotificationChain;
018
019 import org.eclipse.emf.common.util.EList;
020
021 import org.eclipse.emf.ecore.EClass;
022 import org.eclipse.emf.ecore.InternalEObject;
023
024 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
025 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
026 import org.eclipse.emf.ecore.util.InternalEList;
027
028 /**
029 * <!-- begin-user-doc -->
030 * An implementation of the model object '<em><b>Rule Set</b></em>'.
031 * <!-- end-user-doc -->
032 * <p>
033 * The following features are implemented:
034 * <ul>
035 * <li>{@link com.hammurapi.reasoning.spi.model.impl.RuleSetImpl#getRule <em>Rule</em>}</li>
036 * <li>{@link com.hammurapi.reasoning.spi.model.impl.RuleSetImpl#getBase <em>Base</em>}</li>
037 * </ul>
038 * </p>
039 *
040 * @generated
041 */
042 public class RuleSetImpl extends NamedObjectDefinitionImpl implements RuleSet {
043 /**
044 * The cached value of the '{@link #getRule() <em>Rule</em>}' containment reference list.
045 * <!-- begin-user-doc -->
046 * <!-- end-user-doc -->
047 * @see #getRule()
048 * @generated
049 * @ordered
050 */
051 protected EList<Rule> rule;
052
053 /**
054 * The cached value of the '{@link #getBase() <em>Base</em>}' reference list.
055 * <!-- begin-user-doc -->
056 * <!-- end-user-doc -->
057 * @see #getBase()
058 * @generated
059 * @ordered
060 */
061 protected EList<RuleSet> base;
062
063 /**
064 * <!-- begin-user-doc -->
065 * <!-- end-user-doc -->
066 * @generated
067 */
068 protected RuleSetImpl() {
069 super();
070 }
071
072 /**
073 * <!-- begin-user-doc -->
074 * <!-- end-user-doc -->
075 * @generated
076 */
077 @Override
078 protected EClass eStaticClass() {
079 return ModelPackage.Literals.RULE_SET;
080 }
081
082 /**
083 * <!-- begin-user-doc -->
084 * <!-- end-user-doc -->
085 * @generated
086 */
087 public EList<Rule> getRule() {
088 if (rule == null) {
089 rule = new EObjectContainmentEList<Rule>(Rule.class, this, ModelPackage.RULE_SET__RULE);
090 }
091 return rule;
092 }
093
094 /**
095 * <!-- begin-user-doc -->
096 * <!-- end-user-doc -->
097 * @generated
098 */
099 public EList<RuleSet> getBase() {
100 if (base == null) {
101 base = new EObjectResolvingEList<RuleSet>(RuleSet.class, this, ModelPackage.RULE_SET__BASE);
102 }
103 return base;
104 }
105
106 /**
107 * <!-- begin-user-doc -->
108 * <!-- end-user-doc -->
109 * @generated
110 */
111 @Override
112 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
113 switch (featureID) {
114 case ModelPackage.RULE_SET__RULE:
115 return ((InternalEList<?>)getRule()).basicRemove(otherEnd, msgs);
116 }
117 return super.eInverseRemove(otherEnd, featureID, msgs);
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 @Override
126 public Object eGet(int featureID, boolean resolve, boolean coreType) {
127 switch (featureID) {
128 case ModelPackage.RULE_SET__RULE:
129 return getRule();
130 case ModelPackage.RULE_SET__BASE:
131 return getBase();
132 }
133 return super.eGet(featureID, resolve, coreType);
134 }
135
136 /**
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 */
141 @SuppressWarnings("unchecked")
142 @Override
143 public void eSet(int featureID, Object newValue) {
144 switch (featureID) {
145 case ModelPackage.RULE_SET__RULE:
146 getRule().clear();
147 getRule().addAll((Collection<? extends Rule>)newValue);
148 return;
149 case ModelPackage.RULE_SET__BASE:
150 getBase().clear();
151 getBase().addAll((Collection<? extends RuleSet>)newValue);
152 return;
153 }
154 super.eSet(featureID, newValue);
155 }
156
157 /**
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @generated
161 */
162 @Override
163 public void eUnset(int featureID) {
164 switch (featureID) {
165 case ModelPackage.RULE_SET__RULE:
166 getRule().clear();
167 return;
168 case ModelPackage.RULE_SET__BASE:
169 getBase().clear();
170 return;
171 }
172 super.eUnset(featureID);
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 @Override
181 public boolean eIsSet(int featureID) {
182 switch (featureID) {
183 case ModelPackage.RULE_SET__RULE:
184 return rule != null && !rule.isEmpty();
185 case ModelPackage.RULE_SET__BASE:
186 return base != null && !base.isEmpty();
187 }
188 return super.eIsSet(featureID);
189 }
190
191 } //RuleSetImpl