/**
*/
package robot.robot.impl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
import robot.FlotCtrl.FlotCtrlPackage;
import robot.FlotCtrl.impl.FlotCtrlPackageImpl;
import robot.robot.Bip;
import robot.robot.Command;
import robot.robot.HasTurnedCmd;
import robot.robot.MoveCmd;
import robot.robot.ObstacleCmd;
import robot.robot.PrintCmd;
import robot.robot.ProgramUnit;
import robot.robot.RobotFactory;
import robot.robot.RobotPackage;
import robot.robot.SetTurnAngleCmd;
import robot.robot.StopEngineCmd;
import robot.robot.StopProgramCmd;
import robot.robot.TurnCmd;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class RobotPackageImpl extends EPackageImpl implements RobotPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass commandEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass moveCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass obstacleCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass bipEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass setTurnAngleCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass hasTurnedCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass turnCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stopEngineCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass stopProgramCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass printCmdEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass programUnitEClass = 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 robot.robot.RobotPackage#eNS_URI
* @see #init()
* @generated
*/
private RobotPackageImpl() {
super(eNS_URI, RobotFactory.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 RobotPackage#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 RobotPackage init() {
if (isInited) return (RobotPackage)EPackage.Registry.INSTANCE.getEPackage(RobotPackage.eNS_URI);
// Obtain or create and register package
RobotPackageImpl theRobotPackage = (RobotPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof RobotPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new RobotPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
robot.impl.RobotPackageImpl theRobotPackage_1 = (robot.impl.RobotPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(robot.RobotPackage.eNS_URI) instanceof robot.impl.RobotPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(robot.RobotPackage.eNS_URI) : robot.RobotPackage.eINSTANCE);
FlotCtrlPackageImpl theFlotCtrlPackage = (FlotCtrlPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(FlotCtrlPackage.eNS_URI) instanceof FlotCtrlPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(FlotCtrlPackage.eNS_URI) : FlotCtrlPackage.eINSTANCE);
// Create package meta-data objects
theRobotPackage.createPackageContents();
theRobotPackage_1.createPackageContents();
theFlotCtrlPackage.createPackageContents();
// Initialize created meta-data
theRobotPackage.initializePackageContents();
theRobotPackage_1.initializePackageContents();
theFlotCtrlPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theRobotPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(RobotPackage.eNS_URI, theRobotPackage);
return theRobotPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getCommand() {
return commandEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getMoveCmd() {
return moveCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getMoveCmd_Power() {
return (EAttribute)moveCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getObstacleCmd() {
return obstacleCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getObstacleCmd_Distance() {
return (EAttribute)obstacleCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getBip() {
return bipEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getBip_Duration() {
return (EAttribute)bipEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getBip_Power() {
return (EAttribute)bipEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getBip_Repet() {
return (EAttribute)bipEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSetTurnAngleCmd() {
return setTurnAngleCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getSetTurnAngleCmd_Angle() {
return (EAttribute)setTurnAngleCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getHasTurnedCmd() {
return hasTurnedCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getHasTurnedCmd_Angle() {
return (EAttribute)hasTurnedCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTurnCmd() {
return turnCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTurnCmd_Power() {
return (EAttribute)turnCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTurnCmd_Angle() {
return (EAttribute)turnCmdEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStopEngineCmd() {
return stopEngineCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getStopProgramCmd() {
return stopProgramCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getPrintCmd() {
return printCmdEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getPrintCmd_Msg() {
return (EAttribute)printCmdEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getPrintCmd_Duration() {
return (EAttribute)printCmdEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getPrintCmd_Line() {
return (EAttribute)printCmdEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getPrintCmd_Col() {
return (EAttribute)printCmdEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getProgramUnit() {
return programUnitEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getProgramUnit_Block() {
return (EReference)programUnitEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public RobotFactory getRobotFactory() {
return (RobotFactory)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
commandEClass = createEClass(COMMAND);
moveCmdEClass = createEClass(MOVE_CMD);
createEAttribute(moveCmdEClass, MOVE_CMD__POWER);
obstacleCmdEClass = createEClass(OBSTACLE_CMD);
createEAttribute(obstacleCmdEClass, OBSTACLE_CMD__DISTANCE);
bipEClass = createEClass(BIP);
createEAttribute(bipEClass, BIP__DURATION);
createEAttribute(bipEClass, BIP__POWER);
createEAttribute(bipEClass, BIP__REPET);
setTurnAngleCmdEClass = createEClass(SET_TURN_ANGLE_CMD);
createEAttribute(setTurnAngleCmdEClass, SET_TURN_ANGLE_CMD__ANGLE);
hasTurnedCmdEClass = createEClass(HAS_TURNED_CMD);
createEAttribute(hasTurnedCmdEClass, HAS_TURNED_CMD__ANGLE);
turnCmdEClass = createEClass(TURN_CMD);
createEAttribute(turnCmdEClass, TURN_CMD__POWER);
createEAttribute(turnCmdEClass, TURN_CMD__ANGLE);
stopEngineCmdEClass = createEClass(STOP_ENGINE_CMD);
stopProgramCmdEClass = createEClass(STOP_PROGRAM_CMD);
printCmdEClass = createEClass(PRINT_CMD);
createEAttribute(printCmdEClass, PRINT_CMD__MSG);
createEAttribute(printCmdEClass, PRINT_CMD__DURATION);
createEAttribute(printCmdEClass, PRINT_CMD__LINE);
createEAttribute(printCmdEClass, PRINT_CMD__COL);
programUnitEClass = createEClass(PROGRAM_UNIT);
createEReference(programUnitEClass, PROGRAM_UNIT__BLOCK);
}
/**
* <!-- 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
FlotCtrlPackage theFlotCtrlPackage = (FlotCtrlPackage)EPackage.Registry.INSTANCE.getEPackage(FlotCtrlPackage.eNS_URI);
robot.RobotPackage theRobotPackage_1 = (robot.RobotPackage)EPackage.Registry.INSTANCE.getEPackage(robot.RobotPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
commandEClass.getESuperTypes().add(theFlotCtrlPackage.getExpression());
moveCmdEClass.getESuperTypes().add(this.getCommand());
obstacleCmdEClass.getESuperTypes().add(theFlotCtrlPackage.getBoolExp());
obstacleCmdEClass.getESuperTypes().add(this.getCommand());
bipEClass.getESuperTypes().add(this.getCommand());
setTurnAngleCmdEClass.getESuperTypes().add(this.getCommand());
hasTurnedCmdEClass.getESuperTypes().add(theFlotCtrlPackage.getBoolExp());
hasTurnedCmdEClass.getESuperTypes().add(this.getCommand());
turnCmdEClass.getESuperTypes().add(this.getCommand());
stopEngineCmdEClass.getESuperTypes().add(this.getCommand());
stopProgramCmdEClass.getESuperTypes().add(this.getCommand());
printCmdEClass.getESuperTypes().add(this.getCommand());
// Initialize classes, features, and operations; add parameters
initEClass(commandEClass, Command.class, "Command", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(moveCmdEClass, MoveCmd.class, "MoveCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getMoveCmd_Power(), theRobotPackage_1.getDouble(), "power", null, 1, 1, MoveCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(obstacleCmdEClass, ObstacleCmd.class, "ObstacleCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getObstacleCmd_Distance(), theRobotPackage_1.getDouble(), "distance", null, 1, 1, ObstacleCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(bipEClass, Bip.class, "Bip", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getBip_Duration(), theRobotPackage_1.getInt(), "duration", null, 1, 1, Bip.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBip_Power(), theRobotPackage_1.getDouble(), "power", null, 1, 1, Bip.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getBip_Repet(), theRobotPackage_1.getBool(), "repet", null, 1, 1, Bip.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(setTurnAngleCmdEClass, SetTurnAngleCmd.class, "SetTurnAngleCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getSetTurnAngleCmd_Angle(), theRobotPackage_1.getDouble(), "angle", null, 1, 1, SetTurnAngleCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(hasTurnedCmdEClass, HasTurnedCmd.class, "HasTurnedCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getHasTurnedCmd_Angle(), theRobotPackage_1.getDouble(), "angle", null, 1, 1, HasTurnedCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(turnCmdEClass, TurnCmd.class, "TurnCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTurnCmd_Power(), theRobotPackage_1.getDouble(), "power", null, 1, 1, TurnCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTurnCmd_Angle(), theRobotPackage_1.getDouble(), "angle", null, 1, 1, TurnCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(stopEngineCmdEClass, StopEngineCmd.class, "StopEngineCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(stopProgramCmdEClass, StopProgramCmd.class, "StopProgramCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(printCmdEClass, PrintCmd.class, "PrintCmd", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getPrintCmd_Msg(), theRobotPackage_1.getString(), "msg", null, 1, 1, PrintCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getPrintCmd_Duration(), theRobotPackage_1.getInt(), "duration", null, 1, 1, PrintCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getPrintCmd_Line(), theRobotPackage_1.getInt(), "line", null, 1, 1, PrintCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getPrintCmd_Col(), theRobotPackage_1.getInt(), "col", null, 1, 1, PrintCmd.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(programUnitEClass, ProgramUnit.class, "ProgramUnit", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getProgramUnit_Block(), theFlotCtrlPackage.getExpression(), null, "block", null, 0, -1, ProgramUnit.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
}
} //RobotPackageImpl