001/**
002 * ******************************************************************************
003 * Copyright (c) 2018 Red Hat Inc
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *  *
009 * Contributors:
010 *     Jens Reimann - initial API and implementation
011 *  ******************************************************************************
012 */
013package de.dentrassi.varlink.idl.varlinkIdl.impl;
014
015import de.dentrassi.varlink.idl.varlinkIdl.Arguments;
016import de.dentrassi.varlink.idl.varlinkIdl.Array;
017import de.dentrassi.varlink.idl.varlinkIdl.BasicType;
018import de.dentrassi.varlink.idl.varlinkIdl.Dictionary;
019import de.dentrassi.varlink.idl.varlinkIdl.ElementType;
020import de.dentrassi.varlink.idl.varlinkIdl.Field;
021import de.dentrassi.varlink.idl.varlinkIdl.Interface;
022import de.dentrassi.varlink.idl.varlinkIdl.Member;
023import de.dentrassi.varlink.idl.varlinkIdl.Method;
024import de.dentrassi.varlink.idl.varlinkIdl.Optional;
025import de.dentrassi.varlink.idl.varlinkIdl.Result;
026import de.dentrassi.varlink.idl.varlinkIdl.TypeAlias;
027import de.dentrassi.varlink.idl.varlinkIdl.TypeAliasDefinition;
028import de.dentrassi.varlink.idl.varlinkIdl.TypeReference;
029import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlFactory;
030import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage;
031
032import org.eclipse.emf.ecore.EAttribute;
033import org.eclipse.emf.ecore.EClass;
034import org.eclipse.emf.ecore.EPackage;
035import org.eclipse.emf.ecore.EReference;
036
037import org.eclipse.emf.ecore.impl.EPackageImpl;
038
039/**
040 * <!-- begin-user-doc -->
041 * An implementation of the model <b>Package</b>.
042 * <!-- end-user-doc -->
043 * @generated
044 */
045public class VarlinkIdlPackageImpl extends EPackageImpl implements VarlinkIdlPackage
046{
047  /**
048   * <!-- begin-user-doc -->
049   * <!-- end-user-doc -->
050   * @generated
051   */
052  private EClass interfaceEClass = null;
053
054  /**
055   * <!-- begin-user-doc -->
056   * <!-- end-user-doc -->
057   * @generated
058   */
059  private EClass memberEClass = null;
060
061  /**
062   * <!-- begin-user-doc -->
063   * <!-- end-user-doc -->
064   * @generated
065   */
066  private EClass typeAliasEClass = null;
067
068  /**
069   * <!-- begin-user-doc -->
070   * <!-- end-user-doc -->
071   * @generated
072   */
073  private EClass typeAliasDefinitionEClass = null;
074
075  /**
076   * <!-- begin-user-doc -->
077   * <!-- end-user-doc -->
078   * @generated
079   */
080  private EClass enumEClass = null;
081
082  /**
083   * <!-- begin-user-doc -->
084   * <!-- end-user-doc -->
085   * @generated
086   */
087  private EClass objectEClass = null;
088
089  /**
090   * <!-- begin-user-doc -->
091   * <!-- end-user-doc -->
092   * @generated
093   */
094  private EClass fieldEClass = null;
095
096  /**
097   * <!-- begin-user-doc -->
098   * <!-- end-user-doc -->
099   * @generated
100   */
101  private EClass elementTypeEClass = null;
102
103  /**
104   * <!-- begin-user-doc -->
105   * <!-- end-user-doc -->
106   * @generated
107   */
108  private EClass arrayEClass = null;
109
110  /**
111   * <!-- begin-user-doc -->
112   * <!-- end-user-doc -->
113   * @generated
114   */
115  private EClass dictionaryEClass = null;
116
117  /**
118   * <!-- begin-user-doc -->
119   * <!-- end-user-doc -->
120   * @generated
121   */
122  private EClass optionalEClass = null;
123
124  /**
125   * <!-- begin-user-doc -->
126   * <!-- end-user-doc -->
127   * @generated
128   */
129  private EClass typeReferenceEClass = null;
130
131  /**
132   * <!-- begin-user-doc -->
133   * <!-- end-user-doc -->
134   * @generated
135   */
136  private EClass basicTypeEClass = null;
137
138  /**
139   * <!-- begin-user-doc -->
140   * <!-- end-user-doc -->
141   * @generated
142   */
143  private EClass methodEClass = null;
144
145  /**
146   * <!-- begin-user-doc -->
147   * <!-- end-user-doc -->
148   * @generated
149   */
150  private EClass argumentsEClass = null;
151
152  /**
153   * <!-- begin-user-doc -->
154   * <!-- end-user-doc -->
155   * @generated
156   */
157  private EClass resultEClass = null;
158
159  /**
160   * <!-- begin-user-doc -->
161   * <!-- end-user-doc -->
162   * @generated
163   */
164  private EClass errorEClass = null;
165
166  /**
167   * Creates an instance of the model <b>Package</b>, registered with
168   * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
169   * package URI value.
170   * <p>Note: the correct way to create the package is via the static
171   * factory method {@link #init init()}, which also performs
172   * initialization of the package, or returns the registered package,
173   * if one already exists.
174   * <!-- begin-user-doc -->
175   * <!-- end-user-doc -->
176   * @see org.eclipse.emf.ecore.EPackage.Registry
177   * @see de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage#eNS_URI
178   * @see #init()
179   * @generated
180   */
181  private VarlinkIdlPackageImpl()
182  {
183    super(eNS_URI, VarlinkIdlFactory.eINSTANCE);
184  }
185
186  /**
187   * <!-- begin-user-doc -->
188   * <!-- end-user-doc -->
189   * @generated
190   */
191  private static boolean isInited = false;
192
193  /**
194   * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
195   * 
196   * <p>This method is used to initialize {@link VarlinkIdlPackage#eINSTANCE} when that field is accessed.
197   * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
198   * <!-- begin-user-doc -->
199   * <!-- end-user-doc -->
200   * @see #eNS_URI
201   * @see #createPackageContents()
202   * @see #initializePackageContents()
203   * @generated
204   */
205  public static VarlinkIdlPackage init()
206  {
207    if (isInited) return (VarlinkIdlPackage)EPackage.Registry.INSTANCE.getEPackage(VarlinkIdlPackage.eNS_URI);
208
209    // Obtain or create and register package
210    VarlinkIdlPackageImpl theVarlinkIdlPackage = (VarlinkIdlPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof VarlinkIdlPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new VarlinkIdlPackageImpl());
211
212    isInited = true;
213
214    // Create package meta-data objects
215    theVarlinkIdlPackage.createPackageContents();
216
217    // Initialize created meta-data
218    theVarlinkIdlPackage.initializePackageContents();
219
220    // Mark meta-data to indicate it can't be changed
221    theVarlinkIdlPackage.freeze();
222
223  
224    // Update the registry and return the package
225    EPackage.Registry.INSTANCE.put(VarlinkIdlPackage.eNS_URI, theVarlinkIdlPackage);
226    return theVarlinkIdlPackage;
227  }
228
229  /**
230   * <!-- begin-user-doc -->
231   * <!-- end-user-doc -->
232   * @generated
233   */
234  public EClass getInterface()
235  {
236    return interfaceEClass;
237  }
238
239  /**
240   * <!-- begin-user-doc -->
241   * <!-- end-user-doc -->
242   * @generated
243   */
244  public EAttribute getInterface_Name()
245  {
246    return (EAttribute)interfaceEClass.getEStructuralFeatures().get(0);
247  }
248
249  /**
250   * <!-- begin-user-doc -->
251   * <!-- end-user-doc -->
252   * @generated
253   */
254  public EReference getInterface_Members()
255  {
256    return (EReference)interfaceEClass.getEStructuralFeatures().get(1);
257  }
258
259  /**
260   * <!-- begin-user-doc -->
261   * <!-- end-user-doc -->
262   * @generated
263   */
264  public EClass getMember()
265  {
266    return memberEClass;
267  }
268
269  /**
270   * <!-- begin-user-doc -->
271   * <!-- end-user-doc -->
272   * @generated
273   */
274  public EAttribute getMember_Name()
275  {
276    return (EAttribute)memberEClass.getEStructuralFeatures().get(0);
277  }
278
279  /**
280   * <!-- begin-user-doc -->
281   * <!-- end-user-doc -->
282   * @generated
283   */
284  public EClass getTypeAlias()
285  {
286    return typeAliasEClass;
287  }
288
289  /**
290   * <!-- begin-user-doc -->
291   * <!-- end-user-doc -->
292   * @generated
293   */
294  public EReference getTypeAlias_Definition()
295  {
296    return (EReference)typeAliasEClass.getEStructuralFeatures().get(0);
297  }
298
299  /**
300   * <!-- begin-user-doc -->
301   * <!-- end-user-doc -->
302   * @generated
303   */
304  public EClass getTypeAliasDefinition()
305  {
306    return typeAliasDefinitionEClass;
307  }
308
309  /**
310   * <!-- begin-user-doc -->
311   * <!-- end-user-doc -->
312   * @generated
313   */
314  public EClass getEnum()
315  {
316    return enumEClass;
317  }
318
319  /**
320   * <!-- begin-user-doc -->
321   * <!-- end-user-doc -->
322   * @generated
323   */
324  public EAttribute getEnum_Fields()
325  {
326    return (EAttribute)enumEClass.getEStructuralFeatures().get(0);
327  }
328
329  /**
330   * <!-- begin-user-doc -->
331   * <!-- end-user-doc -->
332   * @generated
333   */
334  public EClass getObject()
335  {
336    return objectEClass;
337  }
338
339  /**
340   * <!-- begin-user-doc -->
341   * <!-- end-user-doc -->
342   * @generated
343   */
344  public EReference getObject_Fields()
345  {
346    return (EReference)objectEClass.getEStructuralFeatures().get(0);
347  }
348
349  /**
350   * <!-- begin-user-doc -->
351   * <!-- end-user-doc -->
352   * @generated
353   */
354  public EClass getField()
355  {
356    return fieldEClass;
357  }
358
359  /**
360   * <!-- begin-user-doc -->
361   * <!-- end-user-doc -->
362   * @generated
363   */
364  public EAttribute getField_Name()
365  {
366    return (EAttribute)fieldEClass.getEStructuralFeatures().get(0);
367  }
368
369  /**
370   * <!-- begin-user-doc -->
371   * <!-- end-user-doc -->
372   * @generated
373   */
374  public EReference getField_Type()
375  {
376    return (EReference)fieldEClass.getEStructuralFeatures().get(1);
377  }
378
379  /**
380   * <!-- begin-user-doc -->
381   * <!-- end-user-doc -->
382   * @generated
383   */
384  public EClass getElementType()
385  {
386    return elementTypeEClass;
387  }
388
389  /**
390   * <!-- begin-user-doc -->
391   * <!-- end-user-doc -->
392   * @generated
393   */
394  public EClass getArray()
395  {
396    return arrayEClass;
397  }
398
399  /**
400   * <!-- begin-user-doc -->
401   * <!-- end-user-doc -->
402   * @generated
403   */
404  public EReference getArray_Type()
405  {
406    return (EReference)arrayEClass.getEStructuralFeatures().get(0);
407  }
408
409  /**
410   * <!-- begin-user-doc -->
411   * <!-- end-user-doc -->
412   * @generated
413   */
414  public EClass getDictionary()
415  {
416    return dictionaryEClass;
417  }
418
419  /**
420   * <!-- begin-user-doc -->
421   * <!-- end-user-doc -->
422   * @generated
423   */
424  public EReference getDictionary_Type()
425  {
426    return (EReference)dictionaryEClass.getEStructuralFeatures().get(0);
427  }
428
429  /**
430   * <!-- begin-user-doc -->
431   * <!-- end-user-doc -->
432   * @generated
433   */
434  public EClass getOptional()
435  {
436    return optionalEClass;
437  }
438
439  /**
440   * <!-- begin-user-doc -->
441   * <!-- end-user-doc -->
442   * @generated
443   */
444  public EReference getOptional_Type()
445  {
446    return (EReference)optionalEClass.getEStructuralFeatures().get(0);
447  }
448
449  /**
450   * <!-- begin-user-doc -->
451   * <!-- end-user-doc -->
452   * @generated
453   */
454  public EClass getTypeReference()
455  {
456    return typeReferenceEClass;
457  }
458
459  /**
460   * <!-- begin-user-doc -->
461   * <!-- end-user-doc -->
462   * @generated
463   */
464  public EReference getTypeReference_Name()
465  {
466    return (EReference)typeReferenceEClass.getEStructuralFeatures().get(0);
467  }
468
469  /**
470   * <!-- begin-user-doc -->
471   * <!-- end-user-doc -->
472   * @generated
473   */
474  public EClass getBasicType()
475  {
476    return basicTypeEClass;
477  }
478
479  /**
480   * <!-- begin-user-doc -->
481   * <!-- end-user-doc -->
482   * @generated
483   */
484  public EAttribute getBasicType_Type()
485  {
486    return (EAttribute)basicTypeEClass.getEStructuralFeatures().get(0);
487  }
488
489  /**
490   * <!-- begin-user-doc -->
491   * <!-- end-user-doc -->
492   * @generated
493   */
494  public EClass getMethod()
495  {
496    return methodEClass;
497  }
498
499  /**
500   * <!-- begin-user-doc -->
501   * <!-- end-user-doc -->
502   * @generated
503   */
504  public EReference getMethod_Arguments()
505  {
506    return (EReference)methodEClass.getEStructuralFeatures().get(0);
507  }
508
509  /**
510   * <!-- begin-user-doc -->
511   * <!-- end-user-doc -->
512   * @generated
513   */
514  public EReference getMethod_Result()
515  {
516    return (EReference)methodEClass.getEStructuralFeatures().get(1);
517  }
518
519  /**
520   * <!-- begin-user-doc -->
521   * <!-- end-user-doc -->
522   * @generated
523   */
524  public EClass getArguments()
525  {
526    return argumentsEClass;
527  }
528
529  /**
530   * <!-- begin-user-doc -->
531   * <!-- end-user-doc -->
532   * @generated
533   */
534  public EReference getArguments_Arguments()
535  {
536    return (EReference)argumentsEClass.getEStructuralFeatures().get(0);
537  }
538
539  /**
540   * <!-- begin-user-doc -->
541   * <!-- end-user-doc -->
542   * @generated
543   */
544  public EClass getResult()
545  {
546    return resultEClass;
547  }
548
549  /**
550   * <!-- begin-user-doc -->
551   * <!-- end-user-doc -->
552   * @generated
553   */
554  public EReference getResult_Result()
555  {
556    return (EReference)resultEClass.getEStructuralFeatures().get(0);
557  }
558
559  /**
560   * <!-- begin-user-doc -->
561   * <!-- end-user-doc -->
562   * @generated
563   */
564  public EClass getError()
565  {
566    return errorEClass;
567  }
568
569  /**
570   * <!-- begin-user-doc -->
571   * <!-- end-user-doc -->
572   * @generated
573   */
574  public EReference getError_Properties()
575  {
576    return (EReference)errorEClass.getEStructuralFeatures().get(0);
577  }
578
579  /**
580   * <!-- begin-user-doc -->
581   * <!-- end-user-doc -->
582   * @generated
583   */
584  public VarlinkIdlFactory getVarlinkIdlFactory()
585  {
586    return (VarlinkIdlFactory)getEFactoryInstance();
587  }
588
589  /**
590   * <!-- begin-user-doc -->
591   * <!-- end-user-doc -->
592   * @generated
593   */
594  private boolean isCreated = false;
595
596  /**
597   * Creates the meta-model objects for the package.  This method is
598   * guarded to have no affect on any invocation but its first.
599   * <!-- begin-user-doc -->
600   * <!-- end-user-doc -->
601   * @generated
602   */
603  public void createPackageContents()
604  {
605    if (isCreated) return;
606    isCreated = true;
607
608    // Create classes and their features
609    interfaceEClass = createEClass(INTERFACE);
610    createEAttribute(interfaceEClass, INTERFACE__NAME);
611    createEReference(interfaceEClass, INTERFACE__MEMBERS);
612
613    memberEClass = createEClass(MEMBER);
614    createEAttribute(memberEClass, MEMBER__NAME);
615
616    typeAliasEClass = createEClass(TYPE_ALIAS);
617    createEReference(typeAliasEClass, TYPE_ALIAS__DEFINITION);
618
619    typeAliasDefinitionEClass = createEClass(TYPE_ALIAS_DEFINITION);
620
621    enumEClass = createEClass(ENUM);
622    createEAttribute(enumEClass, ENUM__FIELDS);
623
624    objectEClass = createEClass(OBJECT);
625    createEReference(objectEClass, OBJECT__FIELDS);
626
627    fieldEClass = createEClass(FIELD);
628    createEAttribute(fieldEClass, FIELD__NAME);
629    createEReference(fieldEClass, FIELD__TYPE);
630
631    elementTypeEClass = createEClass(ELEMENT_TYPE);
632
633    arrayEClass = createEClass(ARRAY);
634    createEReference(arrayEClass, ARRAY__TYPE);
635
636    dictionaryEClass = createEClass(DICTIONARY);
637    createEReference(dictionaryEClass, DICTIONARY__TYPE);
638
639    optionalEClass = createEClass(OPTIONAL);
640    createEReference(optionalEClass, OPTIONAL__TYPE);
641
642    typeReferenceEClass = createEClass(TYPE_REFERENCE);
643    createEReference(typeReferenceEClass, TYPE_REFERENCE__NAME);
644
645    basicTypeEClass = createEClass(BASIC_TYPE);
646    createEAttribute(basicTypeEClass, BASIC_TYPE__TYPE);
647
648    methodEClass = createEClass(METHOD);
649    createEReference(methodEClass, METHOD__ARGUMENTS);
650    createEReference(methodEClass, METHOD__RESULT);
651
652    argumentsEClass = createEClass(ARGUMENTS);
653    createEReference(argumentsEClass, ARGUMENTS__ARGUMENTS);
654
655    resultEClass = createEClass(RESULT);
656    createEReference(resultEClass, RESULT__RESULT);
657
658    errorEClass = createEClass(ERROR);
659    createEReference(errorEClass, ERROR__PROPERTIES);
660  }
661
662  /**
663   * <!-- begin-user-doc -->
664   * <!-- end-user-doc -->
665   * @generated
666   */
667  private boolean isInitialized = false;
668
669  /**
670   * Complete the initialization of the package and its meta-model.  This
671   * method is guarded to have no affect on any invocation but its first.
672   * <!-- begin-user-doc -->
673   * <!-- end-user-doc -->
674   * @generated
675   */
676  public void initializePackageContents()
677  {
678    if (isInitialized) return;
679    isInitialized = true;
680
681    // Initialize package
682    setName(eNAME);
683    setNsPrefix(eNS_PREFIX);
684    setNsURI(eNS_URI);
685
686    // Create type parameters
687
688    // Set bounds for type parameters
689
690    // Add supertypes to classes
691    typeAliasEClass.getESuperTypes().add(this.getMember());
692    enumEClass.getESuperTypes().add(this.getTypeAliasDefinition());
693    enumEClass.getESuperTypes().add(this.getElementType());
694    objectEClass.getESuperTypes().add(this.getTypeAliasDefinition());
695    objectEClass.getESuperTypes().add(this.getElementType());
696    arrayEClass.getESuperTypes().add(this.getElementType());
697    dictionaryEClass.getESuperTypes().add(this.getElementType());
698    optionalEClass.getESuperTypes().add(this.getElementType());
699    typeReferenceEClass.getESuperTypes().add(this.getElementType());
700    basicTypeEClass.getESuperTypes().add(this.getElementType());
701    methodEClass.getESuperTypes().add(this.getMember());
702    errorEClass.getESuperTypes().add(this.getMember());
703
704    // Initialize classes and features; add operations and parameters
705    initEClass(interfaceEClass, Interface.class, "Interface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
706    initEAttribute(getInterface_Name(), ecorePackage.getEString(), "name", null, 0, 1, Interface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
707    initEReference(getInterface_Members(), this.getMember(), null, "members", null, 0, -1, Interface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
708
709    initEClass(memberEClass, Member.class, "Member", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
710    initEAttribute(getMember_Name(), ecorePackage.getEString(), "name", null, 0, 1, Member.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
711
712    initEClass(typeAliasEClass, TypeAlias.class, "TypeAlias", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
713    initEReference(getTypeAlias_Definition(), this.getTypeAliasDefinition(), null, "definition", null, 0, 1, TypeAlias.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
714
715    initEClass(typeAliasDefinitionEClass, TypeAliasDefinition.class, "TypeAliasDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
716
717    initEClass(enumEClass, de.dentrassi.varlink.idl.varlinkIdl.Enum.class, "Enum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
718    initEAttribute(getEnum_Fields(), ecorePackage.getEString(), "fields", null, 0, -1, de.dentrassi.varlink.idl.varlinkIdl.Enum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
719
720    initEClass(objectEClass, de.dentrassi.varlink.idl.varlinkIdl.Object.class, "Object", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
721    initEReference(getObject_Fields(), this.getField(), null, "fields", null, 0, -1, de.dentrassi.varlink.idl.varlinkIdl.Object.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
722
723    initEClass(fieldEClass, Field.class, "Field", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
724    initEAttribute(getField_Name(), ecorePackage.getEString(), "name", null, 0, 1, Field.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
725    initEReference(getField_Type(), this.getElementType(), null, "type", null, 0, 1, Field.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
726
727    initEClass(elementTypeEClass, ElementType.class, "ElementType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
728
729    initEClass(arrayEClass, Array.class, "Array", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
730    initEReference(getArray_Type(), this.getElementType(), null, "type", null, 0, 1, Array.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
731
732    initEClass(dictionaryEClass, Dictionary.class, "Dictionary", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
733    initEReference(getDictionary_Type(), this.getElementType(), null, "type", null, 0, 1, Dictionary.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
734
735    initEClass(optionalEClass, Optional.class, "Optional", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
736    initEReference(getOptional_Type(), this.getElementType(), null, "type", null, 0, 1, Optional.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
737
738    initEClass(typeReferenceEClass, TypeReference.class, "TypeReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
739    initEReference(getTypeReference_Name(), this.getTypeAlias(), null, "name", null, 0, 1, TypeReference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
740
741    initEClass(basicTypeEClass, BasicType.class, "BasicType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
742    initEAttribute(getBasicType_Type(), ecorePackage.getEString(), "type", null, 0, 1, BasicType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
743
744    initEClass(methodEClass, Method.class, "Method", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
745    initEReference(getMethod_Arguments(), this.getArguments(), null, "arguments", null, 0, 1, Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
746    initEReference(getMethod_Result(), this.getResult(), null, "result", null, 0, 1, Method.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
747
748    initEClass(argumentsEClass, Arguments.class, "Arguments", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
749    initEReference(getArguments_Arguments(), this.getObject(), null, "arguments", null, 0, 1, Arguments.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
750
751    initEClass(resultEClass, Result.class, "Result", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
752    initEReference(getResult_Result(), this.getObject(), null, "result", null, 0, 1, Result.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
753
754    initEClass(errorEClass, de.dentrassi.varlink.idl.varlinkIdl.Error.class, "Error", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
755    initEReference(getError_Properties(), this.getObject(), null, "properties", null, 0, 1, de.dentrassi.varlink.idl.varlinkIdl.Error.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
756
757    // Create resource
758    createResource(eNS_URI);
759  }
760
761} //VarlinkIdlPackageImpl