/**
* Copyright (c) 2012-2016 Marsha Chechik, Alessio Di Sandro, Michalis Famelis,
* Rick Salay.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Alessio Di Sandro - Implementation.
*/
package edu.toronto.cs.se.mavo.impl;
import edu.toronto.cs.se.mavo.DecisionElement;
import edu.toronto.cs.se.mavo.LogicElement;
import edu.toronto.cs.se.mavo.MAVOCollection;
import edu.toronto.cs.se.mavo.MAVODecision;
import edu.toronto.cs.se.mavo.MAVOElement;
import edu.toronto.cs.se.mavo.MAVOFactory;
import edu.toronto.cs.se.mavo.MAVOPackage;
import edu.toronto.cs.se.mavo.MAVOReference;
import edu.toronto.cs.se.mavo.MAVORoot;
import edu.toronto.cs.se.mavo.MayDecision;
import edu.toronto.cs.se.mavo.MayDecisionLogic;
import edu.toronto.cs.se.mavo.SetDecision;
import edu.toronto.cs.se.mavo.VarDecision;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
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 MAVOPackageImpl extends EPackageImpl implements MAVOPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass logicElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass decisionElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mavoRootEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mavoElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mavoReferenceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mavoDecisionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mavoCollectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass mayDecisionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass varDecisionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass setDecisionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum mayDecisionLogicEEnum = 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 edu.toronto.cs.se.mavo.MAVOPackage#eNS_URI
* @see #init()
* @generated
*/
private MAVOPackageImpl() {
super(eNS_URI, MAVOFactory.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 MAVOPackage#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 MAVOPackage init() {
if (isInited) return (MAVOPackage)EPackage.Registry.INSTANCE.getEPackage(MAVOPackage.eNS_URI);
// Obtain or create and register package
MAVOPackageImpl theMAVOPackage = (MAVOPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof MAVOPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new MAVOPackageImpl());
isInited = true;
// Create package meta-data objects
theMAVOPackage.createPackageContents();
// Initialize created meta-data
theMAVOPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theMAVOPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(MAVOPackage.eNS_URI, theMAVOPackage);
return theMAVOPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getLogicElement() {
return logicElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getLogicElement_FormulaVariable() {
return (EAttribute)logicElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getDecisionElement() {
return decisionElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getDecisionElement_Description() {
return (EAttribute)decisionElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMAVORoot() {
return mavoRootEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMAVORoot_Inc() {
return (EAttribute)mavoRootEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMAVORoot_Decisions() {
return (EReference)mavoRootEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMAVOElement() {
return mavoElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMAVOElement_May() {
return (EAttribute)mavoElementEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMAVOElement_Set() {
return (EAttribute)mavoElementEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMAVOElement_Var() {
return (EAttribute)mavoElementEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMAVOElement_Collections() {
return (EReference)mavoElementEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMAVOReference() {
return mavoReferenceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMAVODecision() {
return mavoDecisionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMAVODecision_RequiredDecisions() {
return (EReference)mavoDecisionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMAVOCollection() {
return mavoCollectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMAVOCollection_MavoElements() {
return (EReference)mavoCollectionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMayDecision() {
return mayDecisionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMayDecision_Logic() {
return (EAttribute)mayDecisionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMayDecision_Alternatives() {
return (EReference)mayDecisionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getVarDecision() {
return varDecisionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getVarDecision_Domain() {
return (EReference)varDecisionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSetDecision() {
return setDecisionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getSetDecision_Entity() {
return (EReference)setDecisionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getMayDecisionLogic() {
return mayDecisionLogicEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public MAVOFactory getMAVOFactory() {
return (MAVOFactory)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
logicElementEClass = createEClass(LOGIC_ELEMENT);
createEAttribute(logicElementEClass, LOGIC_ELEMENT__FORMULA_VARIABLE);
decisionElementEClass = createEClass(DECISION_ELEMENT);
createEAttribute(decisionElementEClass, DECISION_ELEMENT__DESCRIPTION);
mavoRootEClass = createEClass(MAVO_ROOT);
createEAttribute(mavoRootEClass, MAVO_ROOT__INC);
createEReference(mavoRootEClass, MAVO_ROOT__DECISIONS);
mavoElementEClass = createEClass(MAVO_ELEMENT);
createEAttribute(mavoElementEClass, MAVO_ELEMENT__MAY);
createEAttribute(mavoElementEClass, MAVO_ELEMENT__SET);
createEAttribute(mavoElementEClass, MAVO_ELEMENT__VAR);
createEReference(mavoElementEClass, MAVO_ELEMENT__COLLECTIONS);
mavoReferenceEClass = createEClass(MAVO_REFERENCE);
mavoDecisionEClass = createEClass(MAVO_DECISION);
createEReference(mavoDecisionEClass, MAVO_DECISION__REQUIRED_DECISIONS);
mavoCollectionEClass = createEClass(MAVO_COLLECTION);
createEReference(mavoCollectionEClass, MAVO_COLLECTION__MAVO_ELEMENTS);
mayDecisionEClass = createEClass(MAY_DECISION);
createEAttribute(mayDecisionEClass, MAY_DECISION__LOGIC);
createEReference(mayDecisionEClass, MAY_DECISION__ALTERNATIVES);
varDecisionEClass = createEClass(VAR_DECISION);
createEReference(varDecisionEClass, VAR_DECISION__DOMAIN);
setDecisionEClass = createEClass(SET_DECISION);
createEReference(setDecisionEClass, SET_DECISION__ENTITY);
// Create enums
mayDecisionLogicEEnum = createEEnum(MAY_DECISION_LOGIC);
}
/**
* <!-- 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);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
decisionElementEClass.getESuperTypes().add(this.getLogicElement());
mavoElementEClass.getESuperTypes().add(this.getLogicElement());
mavoReferenceEClass.getESuperTypes().add(this.getMAVOElement());
mavoDecisionEClass.getESuperTypes().add(this.getDecisionElement());
mavoCollectionEClass.getESuperTypes().add(this.getDecisionElement());
mayDecisionEClass.getESuperTypes().add(this.getMAVODecision());
varDecisionEClass.getESuperTypes().add(this.getMAVODecision());
setDecisionEClass.getESuperTypes().add(this.getMAVODecision());
// Initialize classes, features, and operations; add parameters
initEClass(logicElementEClass, LogicElement.class, "LogicElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getLogicElement_FormulaVariable(), ecorePackage.getEString(), "formulaVariable", null, 0, 1, LogicElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(decisionElementEClass, DecisionElement.class, "DecisionElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getDecisionElement_Description(), ecorePackage.getEString(), "description", null, 0, 1, DecisionElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mavoRootEClass, MAVORoot.class, "MAVORoot", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMAVORoot_Inc(), ecorePackage.getEBoolean(), "inc", null, 0, 1, MAVORoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getMAVORoot_Decisions(), this.getMAVODecision(), null, "decisions", null, 0, -1, MAVORoot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mavoElementEClass, MAVOElement.class, "MAVOElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMAVOElement_May(), ecorePackage.getEBoolean(), "may", null, 0, 1, MAVOElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMAVOElement_Set(), ecorePackage.getEBoolean(), "set", null, 0, 1, MAVOElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getMAVOElement_Var(), ecorePackage.getEBoolean(), "var", null, 0, 1, MAVOElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getMAVOElement_Collections(), this.getMAVOCollection(), this.getMAVOCollection_MavoElements(), "collections", null, 0, -1, MAVOElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mavoReferenceEClass, MAVOReference.class, "MAVOReference", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(mavoDecisionEClass, MAVODecision.class, "MAVODecision", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getMAVODecision_RequiredDecisions(), this.getMAVODecision(), null, "requiredDecisions", null, 0, -1, MAVODecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mavoCollectionEClass, MAVOCollection.class, "MAVOCollection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getMAVOCollection_MavoElements(), this.getMAVOElement(), this.getMAVOElement_Collections(), "mavoElements", null, 0, -1, MAVOCollection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(mayDecisionEClass, MayDecision.class, "MayDecision", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMayDecision_Logic(), this.getMayDecisionLogic(), "logic", null, 1, 1, MayDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getMayDecision_Alternatives(), this.getMAVOCollection(), null, "alternatives", null, 1, -1, MayDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(varDecisionEClass, VarDecision.class, "VarDecision", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getVarDecision_Domain(), this.getMAVOCollection(), null, "domain", null, 1, 1, VarDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(setDecisionEClass, SetDecision.class, "SetDecision", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getSetDecision_Entity(), this.getMAVOCollection(), null, "entity", null, 1, 1, SetDecision.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(mayDecisionLogicEEnum, MayDecisionLogic.class, "MayDecisionLogic");
addEEnumLiteral(mayDecisionLogicEEnum, MayDecisionLogic.XOR);
// Create resource
createResource(eNS_URI);
}
} //MAVOPackageImpl