/** * 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.modelepedia.powerwindow.impl; import edu.toronto.cs.se.modelepedia.powerwindow.ForceDetecting; import edu.toronto.cs.se.modelepedia.powerwindow.Infrared; import edu.toronto.cs.se.modelepedia.powerwindow.LockOut; import edu.toronto.cs.se.modelepedia.powerwindow.Movement; import edu.toronto.cs.se.modelepedia.powerwindow.NamedElement; import edu.toronto.cs.se.modelepedia.powerwindow.PowerWindowFactory; import edu.toronto.cs.se.modelepedia.powerwindow.PowerWindowPackage; import edu.toronto.cs.se.modelepedia.powerwindow.PushPull; import edu.toronto.cs.se.modelepedia.powerwindow.Rocker; import edu.toronto.cs.se.modelepedia.powerwindow.Sensor; import edu.toronto.cs.se.modelepedia.powerwindow.Switch; import edu.toronto.cs.se.modelepedia.powerwindow.Window; 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; /** * <!-- begin-user-doc --> * An implementation of the model <b>Package</b>. * <!-- end-user-doc --> * @generated */ public class PowerWindowPackageImpl extends EPackageImpl implements PowerWindowPackage { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass windowEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass sensorEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass infraredEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass forceDetectingEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass switchEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass lockOutEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass movementEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass rockerEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass pushPullEClass = null; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ private EClass namedElementEClass = 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.modelepedia.powerwindow.PowerWindowPackage#eNS_URI * @see #init() * @generated */ private PowerWindowPackageImpl() { super(eNS_URI, PowerWindowFactory.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 PowerWindowPackage#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 PowerWindowPackage init() { if (isInited) return (PowerWindowPackage)EPackage.Registry.INSTANCE.getEPackage(PowerWindowPackage.eNS_URI); // Obtain or create and register package PowerWindowPackageImpl thePowerWindowPackage = (PowerWindowPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof PowerWindowPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new PowerWindowPackageImpl()); isInited = true; // Create package meta-data objects thePowerWindowPackage.createPackageContents(); // Initialize created meta-data thePowerWindowPackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed thePowerWindowPackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(PowerWindowPackage.eNS_URI, thePowerWindowPackage); return thePowerWindowPackage; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getWindow() { return windowEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getWindow_Sensor() { return (EReference)windowEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EReference getWindow_Switches() { return (EReference)windowEClass.getEStructuralFeatures().get(1); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getSensor() { return sensorEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getSensor_Delay() { return (EAttribute)sensorEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getInfrared() { return infraredEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getForceDetecting() { return forceDetectingEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getSwitch() { return switchEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getSwitch_Overridable() { return (EAttribute)switchEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getLockOut() { return lockOutEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getMovement() { return movementEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getRocker() { return rockerEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getPushPull() { return pushPullEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EClass getNamedElement() { return namedElementEClass; } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public EAttribute getNamedElement_Name() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ public PowerWindowFactory getPowerWindowFactory() { return (PowerWindowFactory)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 windowEClass = createEClass(WINDOW); createEReference(windowEClass, WINDOW__SENSOR); createEReference(windowEClass, WINDOW__SWITCHES); sensorEClass = createEClass(SENSOR); createEAttribute(sensorEClass, SENSOR__DELAY); infraredEClass = createEClass(INFRARED); forceDetectingEClass = createEClass(FORCE_DETECTING); switchEClass = createEClass(SWITCH); createEAttribute(switchEClass, SWITCH__OVERRIDABLE); lockOutEClass = createEClass(LOCK_OUT); movementEClass = createEClass(MOVEMENT); rockerEClass = createEClass(ROCKER); pushPullEClass = createEClass(PUSH_PULL); namedElementEClass = createEClass(NAMED_ELEMENT); createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); } /** * <!-- 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 windowEClass.getESuperTypes().add(this.getNamedElement()); infraredEClass.getESuperTypes().add(this.getSensor()); forceDetectingEClass.getESuperTypes().add(this.getSensor()); switchEClass.getESuperTypes().add(this.getNamedElement()); lockOutEClass.getESuperTypes().add(this.getSwitch()); movementEClass.getESuperTypes().add(this.getSwitch()); rockerEClass.getESuperTypes().add(this.getMovement()); pushPullEClass.getESuperTypes().add(this.getMovement()); // Initialize classes, features, and operations; add parameters initEClass(windowEClass, Window.class, "Window", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getWindow_Sensor(), this.getSensor(), null, "sensor", null, 0, 1, Window.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getWindow_Switches(), this.getSwitch(), null, "switches", null, 1, -1, Window.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(sensorEClass, Sensor.class, "Sensor", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getSensor_Delay(), ecorePackage.getEInt(), "delay", null, 1, 1, Sensor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(infraredEClass, Infrared.class, "Infrared", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(forceDetectingEClass, ForceDetecting.class, "ForceDetecting", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(switchEClass, Switch.class, "Switch", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getSwitch_Overridable(), ecorePackage.getEBoolean(), "overridable", null, 1, 1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(lockOutEClass, LockOut.class, "LockOut", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(movementEClass, Movement.class, "Movement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(rockerEClass, Rocker.class, "Rocker", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(pushPullEClass, PushPull.class, "PushPull", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Create resource createResource(eNS_URI); } } //PowerWindowPackageImpl