/**
* <copyright>
* </copyright>
*
* $Id$
*/
package simulator.scl.impl;
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;
import simulator.scl.Action;
import simulator.scl.AndCondition;
import simulator.scl.Button;
import simulator.scl.ChangeDisplay;
import simulator.scl.ChangeIndicator;
import simulator.scl.ChangeOutputAction;
import simulator.scl.Condition;
import simulator.scl.ConfigFactory;
import simulator.scl.ConfigPackage;
import simulator.scl.Configuration;
import simulator.scl.Constant;
import simulator.scl.DisplayMatchesCondition;
import simulator.scl.Displayable;
import simulator.scl.EvaluateExpression;
import simulator.scl.Expression;
import simulator.scl.IncrementTimeVariable;
import simulator.scl.IndicatorMatchesCondition;
import simulator.scl.Mode;
import simulator.scl.NextMode;
import simulator.scl.NotCondition;
import simulator.scl.OrCondition;
import simulator.scl.OutputMatchesCondition;
import simulator.scl.SilenceAlarm;
import simulator.scl.SoundAlarm;
import simulator.scl.StringConstant;
import simulator.scl.TimeConstant;
import simulator.scl.UnitOfTime;
import simulator.scl.Variable;
import simulator.scl.VariableComparisonCondition;
import simulator.scl.VariableEqualsCondition;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class ConfigPackageImpl extends EPackageImpl implements ConfigPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass configurationEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass modeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass buttonEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass actionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass conditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass outputMatchesConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass andConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass orConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass notConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass displayMatchesConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass indicatorMatchesConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass variableComparisonConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass variableEqualsConditionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass changeOutputActionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass changeDisplayEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass changeIndicatorEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass nextModeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass soundAlarmEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass silenceAlarmEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass evaluateExpressionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass expressionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass incrementTimeVariableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass displayableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass constantEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stringConstantEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass timeConstantEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass variableEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum unitOfTimeEEnum = 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 simulator.scl.ConfigPackage#eNS_URI
* @see #init()
* @generated
*/
private ConfigPackageImpl() {
super(eNS_URI, ConfigFactory.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 ConfigPackage#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 ConfigPackage init() {
if (isInited) return (ConfigPackage)EPackage.Registry.INSTANCE.getEPackage(ConfigPackage.eNS_URI);
// Obtain or create and register package
ConfigPackageImpl theConfigPackage = (ConfigPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof ConfigPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new ConfigPackageImpl());
isInited = true;
// Create package meta-data objects
theConfigPackage.createPackageContents();
// Initialize created meta-data
theConfigPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theConfigPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(ConfigPackage.eNS_URI, theConfigPackage);
return theConfigPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getConfiguration() {
return configurationEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getConfiguration_Modes() {
return (EReference)configurationEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getConfiguration_Variables() {
return (EReference)configurationEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getConfiguration_Constants() {
return (EReference)configurationEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getConfiguration_Events() {
return (EReference)configurationEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMode() {
return modeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMode_Name() {
return (EAttribute)modeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMode_EntryActions() {
return (EReference)modeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getMode_Buttons() {
return (EReference)modeEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getButton() {
return buttonEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getButton_Name() {
return (EAttribute)buttonEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getButton_Behaviour() {
return (EReference)buttonEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAction() {
return actionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAction_Guard() {
return (EReference)actionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCondition() {
return conditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOutputMatchesCondition() {
return outputMatchesConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getOutputMatchesCondition_ValueToMatch() {
return (EReference)outputMatchesConditionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAndCondition() {
return andConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getAndCondition_Subconditions() {
return (EReference)andConditionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getOrCondition() {
return orConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getOrCondition_Subconditions() {
return (EReference)orConditionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getNotCondition() {
return notConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getNotCondition_Subcondition() {
return (EReference)notConditionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getDisplayMatchesCondition() {
return displayMatchesConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getIndicatorMatchesCondition() {
return indicatorMatchesConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getVariableComparisonCondition() {
return variableComparisonConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getVariableComparisonCondition_Variable() {
return (EReference)variableComparisonConditionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getVariableComparisonCondition_Value() {
return (EReference)variableComparisonConditionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getVariableEqualsCondition() {
return variableEqualsConditionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getChangeOutputAction() {
return changeOutputActionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getChangeOutputAction_NewValue() {
return (EReference)changeOutputActionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getChangeDisplay() {
return changeDisplayEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getChangeIndicator() {
return changeIndicatorEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getNextMode() {
return nextModeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSoundAlarm() {
return soundAlarmEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSilenceAlarm() {
return silenceAlarmEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEvaluateExpression() {
return evaluateExpressionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEvaluateExpression_Expression() {
return (EReference)evaluateExpressionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getExpression() {
return expressionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getIncrementTimeVariable() {
return incrementTimeVariableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getIncrementTimeVariable_Variable() {
return (EReference)incrementTimeVariableEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getIncrementTimeVariable_Unit() {
return (EAttribute)incrementTimeVariableEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getDisplayable() {
return displayableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getConstant() {
return constantEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStringConstant() {
return stringConstantEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getStringConstant_Value() {
return (EAttribute)stringConstantEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTimeConstant() {
return timeConstantEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTimeConstant_Hours() {
return (EAttribute)timeConstantEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTimeConstant_Minutes() {
return (EAttribute)timeConstantEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getVariable() {
return variableEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getVariable_Name() {
return (EAttribute)variableEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getUnitOfTime() {
return unitOfTimeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ConfigFactory getConfigFactory() {
return (ConfigFactory)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
configurationEClass = createEClass(CONFIGURATION);
createEReference(configurationEClass, CONFIGURATION__MODES);
createEReference(configurationEClass, CONFIGURATION__VARIABLES);
createEReference(configurationEClass, CONFIGURATION__CONSTANTS);
createEReference(configurationEClass, CONFIGURATION__EVENTS);
modeEClass = createEClass(MODE);
createEAttribute(modeEClass, MODE__NAME);
createEReference(modeEClass, MODE__ENTRY_ACTIONS);
createEReference(modeEClass, MODE__BUTTONS);
buttonEClass = createEClass(BUTTON);
createEAttribute(buttonEClass, BUTTON__NAME);
createEReference(buttonEClass, BUTTON__BEHAVIOUR);
actionEClass = createEClass(ACTION);
createEReference(actionEClass, ACTION__GUARD);
conditionEClass = createEClass(CONDITION);
outputMatchesConditionEClass = createEClass(OUTPUT_MATCHES_CONDITION);
createEReference(outputMatchesConditionEClass, OUTPUT_MATCHES_CONDITION__VALUE_TO_MATCH);
andConditionEClass = createEClass(AND_CONDITION);
createEReference(andConditionEClass, AND_CONDITION__SUBCONDITIONS);
orConditionEClass = createEClass(OR_CONDITION);
createEReference(orConditionEClass, OR_CONDITION__SUBCONDITIONS);
notConditionEClass = createEClass(NOT_CONDITION);
createEReference(notConditionEClass, NOT_CONDITION__SUBCONDITION);
displayMatchesConditionEClass = createEClass(DISPLAY_MATCHES_CONDITION);
indicatorMatchesConditionEClass = createEClass(INDICATOR_MATCHES_CONDITION);
variableComparisonConditionEClass = createEClass(VARIABLE_COMPARISON_CONDITION);
createEReference(variableComparisonConditionEClass, VARIABLE_COMPARISON_CONDITION__VARIABLE);
createEReference(variableComparisonConditionEClass, VARIABLE_COMPARISON_CONDITION__VALUE);
variableEqualsConditionEClass = createEClass(VARIABLE_EQUALS_CONDITION);
changeOutputActionEClass = createEClass(CHANGE_OUTPUT_ACTION);
createEReference(changeOutputActionEClass, CHANGE_OUTPUT_ACTION__NEW_VALUE);
changeDisplayEClass = createEClass(CHANGE_DISPLAY);
changeIndicatorEClass = createEClass(CHANGE_INDICATOR);
nextModeEClass = createEClass(NEXT_MODE);
soundAlarmEClass = createEClass(SOUND_ALARM);
silenceAlarmEClass = createEClass(SILENCE_ALARM);
evaluateExpressionEClass = createEClass(EVALUATE_EXPRESSION);
createEReference(evaluateExpressionEClass, EVALUATE_EXPRESSION__EXPRESSION);
expressionEClass = createEClass(EXPRESSION);
incrementTimeVariableEClass = createEClass(INCREMENT_TIME_VARIABLE);
createEReference(incrementTimeVariableEClass, INCREMENT_TIME_VARIABLE__VARIABLE);
createEAttribute(incrementTimeVariableEClass, INCREMENT_TIME_VARIABLE__UNIT);
displayableEClass = createEClass(DISPLAYABLE);
constantEClass = createEClass(CONSTANT);
stringConstantEClass = createEClass(STRING_CONSTANT);
createEAttribute(stringConstantEClass, STRING_CONSTANT__VALUE);
timeConstantEClass = createEClass(TIME_CONSTANT);
createEAttribute(timeConstantEClass, TIME_CONSTANT__HOURS);
createEAttribute(timeConstantEClass, TIME_CONSTANT__MINUTES);
variableEClass = createEClass(VARIABLE);
createEAttribute(variableEClass, VARIABLE__NAME);
// Create enums
unitOfTimeEEnum = createEEnum(UNIT_OF_TIME);
}
/**
* <!-- 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
outputMatchesConditionEClass.getESuperTypes().add(this.getCondition());
andConditionEClass.getESuperTypes().add(this.getCondition());
orConditionEClass.getESuperTypes().add(this.getCondition());
notConditionEClass.getESuperTypes().add(this.getCondition());
displayMatchesConditionEClass.getESuperTypes().add(this.getOutputMatchesCondition());
indicatorMatchesConditionEClass.getESuperTypes().add(this.getOutputMatchesCondition());
variableComparisonConditionEClass.getESuperTypes().add(this.getCondition());
variableEqualsConditionEClass.getESuperTypes().add(this.getVariableComparisonCondition());
changeOutputActionEClass.getESuperTypes().add(this.getAction());
changeDisplayEClass.getESuperTypes().add(this.getChangeOutputAction());
changeIndicatorEClass.getESuperTypes().add(this.getChangeOutputAction());
nextModeEClass.getESuperTypes().add(this.getAction());
soundAlarmEClass.getESuperTypes().add(this.getAction());
silenceAlarmEClass.getESuperTypes().add(this.getAction());
evaluateExpressionEClass.getESuperTypes().add(this.getAction());
incrementTimeVariableEClass.getESuperTypes().add(this.getExpression());
constantEClass.getESuperTypes().add(this.getDisplayable());
stringConstantEClass.getESuperTypes().add(this.getConstant());
timeConstantEClass.getESuperTypes().add(this.getConstant());
variableEClass.getESuperTypes().add(this.getDisplayable());
// Initialize classes and features; add operations and parameters
initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getConfiguration_Modes(), this.getMode(), null, "modes", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getConfiguration_Variables(), this.getVariable(), null, "variables", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getConfiguration_Constants(), this.getConstant(), null, "constants", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getConfiguration_Events(), this.getAction(), null, "events", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(modeEClass, Mode.class, "Mode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMode_Name(), ecorePackage.getEString(), "name", null, 0, 1, Mode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getMode_EntryActions(), this.getAction(), null, "entryActions", null, 0, -1, Mode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getMode_Buttons(), this.getButton(), null, "buttons", null, 0, -1, Mode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(buttonEClass, Button.class, "Button", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getButton_Name(), ecorePackage.getEString(), "name", null, 1, 1, Button.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getButton_Behaviour(), this.getAction(), null, "behaviour", null, 1, -1, Button.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(actionEClass, Action.class, "Action", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAction_Guard(), this.getCondition(), null, "guard", null, 0, 1, Action.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(conditionEClass, Condition.class, "Condition", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(outputMatchesConditionEClass, OutputMatchesCondition.class, "OutputMatchesCondition", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getOutputMatchesCondition_ValueToMatch(), this.getDisplayable(), null, "valueToMatch", null, 1, 1, OutputMatchesCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(andConditionEClass, AndCondition.class, "AndCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getAndCondition_Subconditions(), this.getCondition(), null, "subconditions", null, 2, -1, AndCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(orConditionEClass, OrCondition.class, "OrCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getOrCondition_Subconditions(), this.getCondition(), null, "subconditions", null, 2, -1, OrCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(notConditionEClass, NotCondition.class, "NotCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getNotCondition_Subcondition(), this.getCondition(), null, "subcondition", null, 1, 1, NotCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(displayMatchesConditionEClass, DisplayMatchesCondition.class, "DisplayMatchesCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(indicatorMatchesConditionEClass, IndicatorMatchesCondition.class, "IndicatorMatchesCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(variableComparisonConditionEClass, VariableComparisonCondition.class, "VariableComparisonCondition", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getVariableComparisonCondition_Variable(), this.getVariable(), null, "variable", null, 1, 1, VariableComparisonCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getVariableComparisonCondition_Value(), this.getDisplayable(), null, "value", null, 1, 1, VariableComparisonCondition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(variableEqualsConditionEClass, VariableEqualsCondition.class, "VariableEqualsCondition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(changeOutputActionEClass, ChangeOutputAction.class, "ChangeOutputAction", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getChangeOutputAction_NewValue(), this.getDisplayable(), null, "newValue", null, 1, 1, ChangeOutputAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(changeDisplayEClass, ChangeDisplay.class, "ChangeDisplay", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(changeIndicatorEClass, ChangeIndicator.class, "ChangeIndicator", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(nextModeEClass, NextMode.class, "NextMode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(soundAlarmEClass, SoundAlarm.class, "SoundAlarm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(silenceAlarmEClass, SilenceAlarm.class, "SilenceAlarm", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(evaluateExpressionEClass, EvaluateExpression.class, "EvaluateExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEvaluateExpression_Expression(), this.getExpression(), null, "expression", null, 1, 1, EvaluateExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(expressionEClass, Expression.class, "Expression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(incrementTimeVariableEClass, IncrementTimeVariable.class, "IncrementTimeVariable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getIncrementTimeVariable_Variable(), this.getVariable(), null, "variable", null, 1, 1, IncrementTimeVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getIncrementTimeVariable_Unit(), this.getUnitOfTime(), "unit", null, 1, 1, IncrementTimeVariable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(displayableEClass, Displayable.class, "Displayable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(constantEClass, Constant.class, "Constant", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(stringConstantEClass, StringConstant.class, "StringConstant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getStringConstant_Value(), ecorePackage.getEString(), "value", null, 1, 1, StringConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(timeConstantEClass, TimeConstant.class, "TimeConstant", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTimeConstant_Hours(), ecorePackage.getEIntegerObject(), "hours", null, 1, 1, TimeConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTimeConstant_Minutes(), ecorePackage.getEIntegerObject(), "minutes", null, 1, 1, TimeConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(variableEClass, Variable.class, "Variable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getVariable_Name(), ecorePackage.getEString(), "name", null, 1, 1, Variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
// Initialize enums and add enum literals
initEEnum(unitOfTimeEEnum, UnitOfTime.class, "UnitOfTime");
addEEnumLiteral(unitOfTimeEEnum, UnitOfTime.HOUR);
addEEnumLiteral(unitOfTimeEEnum, UnitOfTime.MINUTE);
// Create resource
createResource(eNS_URI);
}
} //ConfigPackageImpl