001/**
002 */
003package org.nasdanika.rag.model.impl;
004
005import org.eclipse.emf.ecore.EAttribute;
006import org.eclipse.emf.ecore.EClass;
007import org.eclipse.emf.ecore.EPackage;
008import org.eclipse.emf.ecore.EReference;
009
010import org.eclipse.emf.ecore.impl.EPackageImpl;
011
012import org.nasdanika.ncore.NcorePackage;
013
014import org.nasdanika.rag.model.DoubleVectorStringItem;
015import org.nasdanika.rag.model.DoubleVectorStringStore;
016import org.nasdanika.rag.model.FloatVectorStringItem;
017import org.nasdanika.rag.model.FloatVectorStringStore;
018import org.nasdanika.rag.model.RagFactory;
019import org.nasdanika.rag.model.RagPackage;
020
021/**
022 * <!-- begin-user-doc -->
023 * An implementation of the model <b>Package</b>.
024 * <!-- end-user-doc -->
025 * @generated
026 */
027public class RagPackageImpl extends EPackageImpl implements RagPackage {
028        /**
029         * <!-- begin-user-doc -->
030         * <!-- end-user-doc -->
031         * @generated
032         */
033        private EClass doubleVectorStringItemEClass = null;
034
035        /**
036         * <!-- begin-user-doc -->
037         * <!-- end-user-doc -->
038         * @generated
039         */
040        private EClass doubleVectorStringStoreEClass = null;
041
042        /**
043         * <!-- begin-user-doc -->
044         * <!-- end-user-doc -->
045         * @generated
046         */
047        private EClass floatVectorStringItemEClass = null;
048
049        /**
050         * <!-- begin-user-doc -->
051         * <!-- end-user-doc -->
052         * @generated
053         */
054        private EClass floatVectorStringStoreEClass = null;
055
056        /**
057         * Creates an instance of the model <b>Package</b>, registered with
058         * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
059         * package URI value.
060         * <p>Note: the correct way to create the package is via the static
061         * factory method {@link #init init()}, which also performs
062         * initialization of the package, or returns the registered package,
063         * if one already exists.
064         * <!-- begin-user-doc -->
065         * <!-- end-user-doc -->
066         * @see org.eclipse.emf.ecore.EPackage.Registry
067         * @see org.nasdanika.rag.model.RagPackage#eNS_URI
068         * @see #init()
069         * @generated
070         */
071        private RagPackageImpl() {
072                super(eNS_URI, RagFactory.eINSTANCE);
073        }
074        /**
075         * <!-- begin-user-doc -->
076         * <!-- end-user-doc -->
077         * @generated
078         */
079        private static boolean isInited = false;
080
081        /**
082         * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
083         *
084         * <p>This method is used to initialize {@link RagPackage#eINSTANCE} when that field is accessed.
085         * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
086         * <!-- begin-user-doc -->
087         * <!-- end-user-doc -->
088         * @see #eNS_URI
089         * @see #createPackageContents()
090         * @see #initializePackageContents()
091         * @generated
092         */
093        public static RagPackage init() {
094                if (isInited) return (RagPackage)EPackage.Registry.INSTANCE.getEPackage(RagPackage.eNS_URI);
095
096                // Obtain or create and register package
097                Object registeredRagPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
098                RagPackageImpl theRagPackage = registeredRagPackage instanceof RagPackageImpl ? (RagPackageImpl)registeredRagPackage : new RagPackageImpl();
099
100                isInited = true;
101
102                // Initialize simple dependencies
103                NcorePackage.eINSTANCE.eClass();
104
105                // Create package meta-data objects
106                theRagPackage.createPackageContents();
107
108                // Initialize created meta-data
109                theRagPackage.initializePackageContents();
110
111                // Mark meta-data to indicate it can't be changed
112                theRagPackage.freeze();
113
114                // Update the registry and return the package
115                EPackage.Registry.INSTANCE.put(RagPackage.eNS_URI, theRagPackage);
116                return theRagPackage;
117        }
118
119        /**
120         * <!-- begin-user-doc -->
121         * <!-- end-user-doc -->
122         * @generated
123         */
124        @Override
125        public EClass getDoubleVectorStringItem() {
126                return doubleVectorStringItemEClass;
127        }
128
129        /**
130         * <!-- begin-user-doc -->
131         * <!-- end-user-doc -->
132         * @generated
133         */
134        @Override
135        public EAttribute getDoubleVectorStringItem_Vector() {
136                return (EAttribute)doubleVectorStringItemEClass.getEStructuralFeatures().get(0);
137        }
138
139        /**
140         * <!-- begin-user-doc -->
141         * <!-- end-user-doc -->
142         * @generated
143         */
144        @Override
145        public EClass getDoubleVectorStringStore() {
146                return doubleVectorStringStoreEClass;
147        }
148
149        /**
150         * <!-- begin-user-doc -->
151         * <!-- end-user-doc -->
152         * @generated
153         */
154        @Override
155        public EReference getDoubleVectorStringStore_Items() {
156                return (EReference)doubleVectorStringStoreEClass.getEStructuralFeatures().get(0);
157        }
158
159        /**
160         * <!-- begin-user-doc -->
161         * <!-- end-user-doc -->
162         * @generated
163         */
164        @Override
165        public EClass getFloatVectorStringItem() {
166                return floatVectorStringItemEClass;
167        }
168
169        /**
170         * <!-- begin-user-doc -->
171         * <!-- end-user-doc -->
172         * @generated
173         */
174        @Override
175        public EAttribute getFloatVectorStringItem_Vector() {
176                return (EAttribute)floatVectorStringItemEClass.getEStructuralFeatures().get(0);
177        }
178
179        /**
180         * <!-- begin-user-doc -->
181         * <!-- end-user-doc -->
182         * @generated
183         */
184        @Override
185        public EClass getFloatVectorStringStore() {
186                return floatVectorStringStoreEClass;
187        }
188
189        /**
190         * <!-- begin-user-doc -->
191         * <!-- end-user-doc -->
192         * @generated
193         */
194        @Override
195        public EReference getFloatVectorStringStore_Items() {
196                return (EReference)floatVectorStringStoreEClass.getEStructuralFeatures().get(0);
197        }
198
199        /**
200         * <!-- begin-user-doc -->
201         * <!-- end-user-doc -->
202         * @generated
203         */
204        @Override
205        public RagFactory getRagFactory() {
206                return (RagFactory)getEFactoryInstance();
207        }
208
209        /**
210         * <!-- begin-user-doc -->
211         * <!-- end-user-doc -->
212         * @generated
213         */
214        private boolean isCreated = false;
215
216        /**
217         * Creates the meta-model objects for the package.  This method is
218         * guarded to have no affect on any invocation but its first.
219         * <!-- begin-user-doc -->
220         * <!-- end-user-doc -->
221         * @generated
222         */
223        public void createPackageContents() {
224                if (isCreated) return;
225                isCreated = true;
226
227                // Create classes and their features
228                doubleVectorStringItemEClass = createEClass(DOUBLE_VECTOR_STRING_ITEM);
229                createEAttribute(doubleVectorStringItemEClass, DOUBLE_VECTOR_STRING_ITEM__VECTOR);
230
231                doubleVectorStringStoreEClass = createEClass(DOUBLE_VECTOR_STRING_STORE);
232                createEReference(doubleVectorStringStoreEClass, DOUBLE_VECTOR_STRING_STORE__ITEMS);
233
234                floatVectorStringItemEClass = createEClass(FLOAT_VECTOR_STRING_ITEM);
235                createEAttribute(floatVectorStringItemEClass, FLOAT_VECTOR_STRING_ITEM__VECTOR);
236
237                floatVectorStringStoreEClass = createEClass(FLOAT_VECTOR_STRING_STORE);
238                createEReference(floatVectorStringStoreEClass, FLOAT_VECTOR_STRING_STORE__ITEMS);
239        }
240
241        /**
242         * <!-- begin-user-doc -->
243         * <!-- end-user-doc -->
244         * @generated
245         */
246        private boolean isInitialized = false;
247
248        /**
249         * Complete the initialization of the package and its meta-model.  This
250         * method is guarded to have no affect on any invocation but its first.
251         * <!-- begin-user-doc -->
252         * <!-- end-user-doc -->
253         * @generated
254         */
255        public void initializePackageContents() {
256                if (isInitialized) return;
257                isInitialized = true;
258
259                // Initialize package
260                setName(eNAME);
261                setNsPrefix(eNS_PREFIX);
262                setNsURI(eNS_URI);
263
264                // Obtain other dependent packages
265                NcorePackage theNcorePackage = (NcorePackage)EPackage.Registry.INSTANCE.getEPackage(NcorePackage.eNS_URI);
266
267                // Create type parameters
268
269                // Set bounds for type parameters
270
271                // Add supertypes to classes
272                doubleVectorStringItemEClass.getESuperTypes().add(theNcorePackage.getStringIdentity());
273                floatVectorStringItemEClass.getESuperTypes().add(theNcorePackage.getStringIdentity());
274
275                // Initialize classes, features, and operations; add parameters
276                initEClass(doubleVectorStringItemEClass, DoubleVectorStringItem.class, "DoubleVectorStringItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
277                initEAttribute(getDoubleVectorStringItem_Vector(), ecorePackage.getEDouble(), "vector", null, 0, 1, DoubleVectorStringItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
278
279                initEClass(doubleVectorStringStoreEClass, DoubleVectorStringStore.class, "DoubleVectorStringStore", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
280                initEReference(getDoubleVectorStringStore_Items(), this.getDoubleVectorStringItem(), null, "items", null, 0, -1, DoubleVectorStringStore.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
281
282                initEClass(floatVectorStringItemEClass, FloatVectorStringItem.class, "FloatVectorStringItem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
283                initEAttribute(getFloatVectorStringItem_Vector(), ecorePackage.getEFloat(), "vector", null, 0, 1, FloatVectorStringItem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
284
285                initEClass(floatVectorStringStoreEClass, FloatVectorStringStore.class, "FloatVectorStringStore", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
286                initEReference(getFloatVectorStringStore_Items(), this.getFloatVectorStringItem(), null, "items", null, 0, -1, FloatVectorStringStore.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
287
288                // Create resource
289                createResource(eNS_URI);
290
291                // Create annotations
292                // http://www.eclipse.org/emf/2002/GenModel
293                createGenModelAnnotations();
294        }
295
296        /**
297         * Initializes the annotations for <b>http://www.eclipse.org/emf/2002/GenModel</b>.
298         * <!-- begin-user-doc -->
299         * <!-- end-user-doc -->
300         * @generated
301         */
302        protected void createGenModelAnnotations() {
303                String source = "http://www.eclipse.org/emf/2002/GenModel";
304                addAnnotation
305                  (doubleVectorStringItemEClass,
306                   source,
307                   new String[] {
308                           "documentation", "DoubleVectorStringStore item - a mapping of String id to a double vector."
309                   });
310                addAnnotation
311                  (getDoubleVectorStringItem_Vector(),
312                   source,
313                   new String[] {
314                           "documentation", "Vector elements"
315                   });
316                addAnnotation
317                  (doubleVectorStringStoreEClass,
318                   source,
319                   new String[] {
320                           "documentation", "Stores double vectors identified by strrings (URI\'s)"
321                   });
322                addAnnotation
323                  (getDoubleVectorStringStore_Items(),
324                   source,
325                   new String[] {
326                           "documentation", "Store items"
327                   });
328                addAnnotation
329                  (floatVectorStringItemEClass,
330                   source,
331                   new String[] {
332                           "documentation", "FloatVectorStringStore item - a mapping of String id to a float vector."
333                   });
334                addAnnotation
335                  (getFloatVectorStringItem_Vector(),
336                   source,
337                   new String[] {
338                           "documentation", "Vector elements"
339                   });
340                addAnnotation
341                  (floatVectorStringStoreEClass,
342                   source,
343                   new String[] {
344                           "documentation", "Stores float vectors identified by strrings (URI\'s)"
345                   });
346                addAnnotation
347                  (getFloatVectorStringStore_Items(),
348                   source,
349                   new String[] {
350                           "documentation", "Store items"
351                   });
352        }
353
354} //RagPackageImpl