/**
* Copyright (c) 2013 United States Government as represented by the Administrator for The National Aeronautics and Space Administration. All Rights Reserved.
*
*/
package net.certware.sacm.SACM.impl;
import net.certware.sacm.SACM.Annotation;
import net.certware.sacm.SACM.Argumentation.ArgumentationPackage;
import net.certware.sacm.SACM.Argumentation.impl.ArgumentationPackageImpl;
import net.certware.sacm.SACM.AssuranceCase;
import net.certware.sacm.SACM.Datetime;
import net.certware.sacm.SACM.Evidence.EvidencePackage;
import net.certware.sacm.SACM.Evidence.impl.EvidencePackageImpl;
import net.certware.sacm.SACM.ModelElement;
import net.certware.sacm.SACM.SACMElement;
import net.certware.sacm.SACM.SACMFactory;
import net.certware.sacm.SACM.SACMPackage;
import net.certware.sacm.SACM.TaggedValue;
import net.certware.sacm.SACM.UtilityElement;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class SACMPackageImpl extends EPackageImpl implements SACMPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static final String copyright = "Copyright (c) 2013 United States Government as represented by the Administrator for The National Aeronautics and Space Administration. All Rights Reserved.\n"; //$NON-NLS-1$
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass annotationEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass assuranceCaseEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass datetimeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass modelElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass sacmElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass taggedValueEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass utilityElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType booleanEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType integerEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType stringEDataType = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>Note: the correct way to create the package is via the static
* factory method {@link #init init()}, which also performs
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see net.certware.sacm.SACM.SACMPackage#eNS_URI
* @see #init()
* @generated
*/
private SACMPackageImpl() {
super(eNS_URI, SACMFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link SACMPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static SACMPackage init() {
if (isInited) return (SACMPackage)EPackage.Registry.INSTANCE.getEPackage(SACMPackage.eNS_URI);
// Obtain or create and register package
SACMPackageImpl theSACMPackage = (SACMPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SACMPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SACMPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
ArgumentationPackageImpl theArgumentationPackage = (ArgumentationPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(ArgumentationPackage.eNS_URI) instanceof ArgumentationPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(ArgumentationPackage.eNS_URI) : ArgumentationPackage.eINSTANCE);
EvidencePackageImpl theEvidencePackage = (EvidencePackageImpl)(EPackage.Registry.INSTANCE.getEPackage(EvidencePackage.eNS_URI) instanceof EvidencePackageImpl ? EPackage.Registry.INSTANCE.getEPackage(EvidencePackage.eNS_URI) : EvidencePackage.eINSTANCE);
// Create package meta-data objects
theSACMPackage.createPackageContents();
theArgumentationPackage.createPackageContents();
theEvidencePackage.createPackageContents();
// Initialize created meta-data
theSACMPackage.initializePackageContents();
theArgumentationPackage.initializePackageContents();
theEvidencePackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theSACMPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(SACMPackage.eNS_URI, theSACMPackage);
return theSACMPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAnnotation() {
return annotationEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAnnotation_Content() {
return (EAttribute)annotationEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAssuranceCase() {
return assuranceCaseEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAssuranceCase_Name() {
return (EAttribute)assuranceCaseEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAssuranceCase_Gid() {
return (EAttribute)assuranceCaseEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAssuranceCase_Argument() {
return (EReference)assuranceCaseEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAssuranceCase_Evidence() {
return (EReference)assuranceCaseEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getDatetime() {
return datetimeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getDatetime_Datetime() {
return (EAttribute)datetimeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getModelElement() {
return modelElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getModelElement_TaggedValue() {
return (EReference)modelElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getModelElement_Annotation() {
return (EReference)modelElementEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getModelElement_Id() {
return (EAttribute)modelElementEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSACMElement() {
return sacmElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTaggedValue() {
return taggedValueEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTaggedValue_Key() {
return (EAttribute)taggedValueEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTaggedValue_Value() {
return (EAttribute)taggedValueEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getUtilityElement() {
return utilityElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getBoolean() {
return booleanEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getInteger() {
return integerEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getString() {
return stringEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SACMFactory getSACMFactory() {
return (SACMFactory)getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated) return;
isCreated = true;
// Create classes and their features
annotationEClass = createEClass(ANNOTATION);
createEAttribute(annotationEClass, ANNOTATION__CONTENT);
assuranceCaseEClass = createEClass(ASSURANCE_CASE);
createEAttribute(assuranceCaseEClass, ASSURANCE_CASE__NAME);
createEAttribute(assuranceCaseEClass, ASSURANCE_CASE__GID);
createEReference(assuranceCaseEClass, ASSURANCE_CASE__ARGUMENT);
createEReference(assuranceCaseEClass, ASSURANCE_CASE__EVIDENCE);
datetimeEClass = createEClass(DATETIME);
createEAttribute(datetimeEClass, DATETIME__DATETIME);
modelElementEClass = createEClass(MODEL_ELEMENT);
createEReference(modelElementEClass, MODEL_ELEMENT__TAGGED_VALUE);
createEReference(modelElementEClass, MODEL_ELEMENT__ANNOTATION);
createEAttribute(modelElementEClass, MODEL_ELEMENT__ID);
sacmElementEClass = createEClass(SACM_ELEMENT);
taggedValueEClass = createEClass(TAGGED_VALUE);
createEAttribute(taggedValueEClass, TAGGED_VALUE__KEY);
createEAttribute(taggedValueEClass, TAGGED_VALUE__VALUE);
utilityElementEClass = createEClass(UTILITY_ELEMENT);
// Create data types
booleanEDataType = createEDataType(BOOLEAN);
integerEDataType = createEDataType(INTEGER);
stringEDataType = createEDataType(STRING);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isInitialized = false;
/**
* Complete the initialization of the package and its meta-model. This
* method is guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void initializePackageContents() {
if (isInitialized) return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Obtain other dependent packages
ArgumentationPackage theArgumentationPackage = (ArgumentationPackage)EPackage.Registry.INSTANCE.getEPackage(ArgumentationPackage.eNS_URI);
EvidencePackage theEvidencePackage = (EvidencePackage)EPackage.Registry.INSTANCE.getEPackage(EvidencePackage.eNS_URI);
// Add subpackages
getESubpackages().add(theArgumentationPackage);
getESubpackages().add(theEvidencePackage);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
annotationEClass.getESuperTypes().add(this.getUtilityElement());
assuranceCaseEClass.getESuperTypes().add(this.getModelElement());
modelElementEClass.getESuperTypes().add(this.getSACMElement());
taggedValueEClass.getESuperTypes().add(this.getUtilityElement());
utilityElementEClass.getESuperTypes().add(this.getSACMElement());
// Initialize classes and features; add operations and parameters
initEClass(annotationEClass, Annotation.class, "Annotation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getAnnotation_Content(), this.getString(), "content", null, 1, 1, Annotation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEClass(assuranceCaseEClass, AssuranceCase.class, "AssuranceCase", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getAssuranceCase_Name(), this.getString(), "name", null, 1, 1, AssuranceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEAttribute(getAssuranceCase_Gid(), this.getString(), "gid", null, 1, 1, AssuranceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEReference(getAssuranceCase_Argument(), theArgumentationPackage.getArgumentation(), null, "argument", null, 0, -1, AssuranceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEReference(getAssuranceCase_Evidence(), theEvidencePackage.getEvidenceContainer(), null, "evidence", null, 0, -1, AssuranceCase.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEClass(datetimeEClass, Datetime.class, "Datetime", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getDatetime_Datetime(), this.getString(), "datetime", null, 1, 1, Datetime.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEClass(modelElementEClass, ModelElement.class, "ModelElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEReference(getModelElement_TaggedValue(), this.getTaggedValue(), null, "taggedValue", null, 0, -1, ModelElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEReference(getModelElement_Annotation(), this.getAnnotation(), null, "annotation", null, 0, -1, ModelElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEAttribute(getModelElement_Id(), this.getString(), "id", null, 1, 1, ModelElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEClass(sacmElementEClass, SACMElement.class, "SACMElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEClass(taggedValueEClass, TaggedValue.class, "TaggedValue", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEAttribute(getTaggedValue_Key(), this.getString(), "key", null, 1, 1, TaggedValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEAttribute(getTaggedValue_Value(), this.getString(), "value", null, 1, 1, TaggedValue.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED); //$NON-NLS-1$
initEClass(utilityElementEClass, UtilityElement.class, "UtilityElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
// Initialize data types
initEDataType(booleanEDataType, Boolean.class, "Boolean", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEDataType(integerEDataType, Integer.class, "Integer", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
initEDataType(stringEDataType, String.class, "String", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS); //$NON-NLS-1$
// Create resource
createResource(eNS_URI);
// Create annotations
// null
createNullAnnotations();
}
/**
* Initializes the annotations for <b>null</b>.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
protected void createNullAnnotations() {
String source = null;
addAnnotation
(datetimeEClass,
source,
new String[] {
},
new URI[] {
URI.createURI(eNS_URI).appendFragment("//Datetime") //$NON-NLS-1$
});
addAnnotation
(booleanEDataType,
source,
new String[] {
},
new URI[] {
URI.createURI(eNS_URI).appendFragment("//Boolean") //$NON-NLS-1$
});
addAnnotation
(integerEDataType,
source,
new String[] {
},
new URI[] {
URI.createURI(eNS_URI).appendFragment("//Integer") //$NON-NLS-1$
});
addAnnotation
(stringEDataType,
source,
new String[] {
},
new URI[] {
URI.createURI(eNS_URI).appendFragment("//String") //$NON-NLS-1$
});
}
} //SACMPackageImpl