From e904f9d4b1d2d15ab4ec6d72ee881f4c7de34eef Mon Sep 17 00:00:00 2001
From: Kristóf Marussy
+ * The following features are supported:
+ *
+ * If the meaning of the 'Requirement' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Type' container reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Allocated To' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Instances' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Requirements' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Requests' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Application Types' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Host Types' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Hosts' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Applications' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Type' container reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Available Memory' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Available Hdd' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Total Memory' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Total Hdd' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Applications' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Default Memory' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Default Hdd' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Instances' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Cost' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Requirements' containment reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Request' container reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Count' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Type' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Instances' reference list isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are supported:
+ *
+ * If the meaning of the 'Required Memory' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Required Hdd' attribute isn't clear,
+ * there really should be more of a description here...
+ *
+ * If the meaning of the 'Host Type' reference isn't clear,
+ * there really should be more of a description here...
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ * 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.
+ *
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private CpsPackageImpl() {
+ super(eNS_URI, CpsFactory.eINSTANCE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this model, and for any others upon which it depends.
+ *
+ * This method is used to initialize {@link CpsPackage#eINSTANCE} when that field is accessed.
+ * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ *
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static CpsPackage init() {
+ if (isInited)
+ return (CpsPackage) EPackage.Registry.INSTANCE.getEPackage(CpsPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredCpsPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ CpsPackageImpl theCpsPackage = registeredCpsPackage instanceof CpsPackageImpl
+ ? (CpsPackageImpl) registeredCpsPackage
+ : new CpsPackageImpl();
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theCpsPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theCpsPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theCpsPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(CpsPackage.eNS_URI, theCpsPackage);
+ return theCpsPackage;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getCyberPhysicalSystem() {
+ return cyberPhysicalSystemEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getCyberPhysicalSystem_Requests() {
+ return (EReference) cyberPhysicalSystemEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getCyberPhysicalSystem_ApplicationTypes() {
+ return (EReference) cyberPhysicalSystemEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getCyberPhysicalSystem_HostTypes() {
+ return (EReference) cyberPhysicalSystemEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getCyberPhysicalSystem_Hosts() {
+ return (EReference) cyberPhysicalSystemEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getCyberPhysicalSystem_Applications() {
+ return (EReference) cyberPhysicalSystemEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getApplicationType() {
+ return applicationTypeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getApplicationType_Instances() {
+ return (EReference) applicationTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getApplicationType_Requirements() {
+ return (EReference) applicationTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getHostType() {
+ return hostTypeEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostType_DefaultMemory() {
+ return (EAttribute) hostTypeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostType_DefaultHdd() {
+ return (EAttribute) hostTypeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getHostType_Instances() {
+ return (EReference) hostTypeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostType_Cost() {
+ return (EAttribute) hostTypeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getRequest() {
+ return requestEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRequest_Requirements() {
+ return (EReference) requestEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getRequirement() {
+ return requirementEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRequirement_Request() {
+ return (EReference) requirementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRequirement_Count() {
+ return (EAttribute) requirementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRequirement_Type() {
+ return (EReference) requirementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRequirement_Instances() {
+ return (EReference) requirementEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getApplicationInstance() {
+ return applicationInstanceEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getApplicationInstance_Requirement() {
+ return (EReference) applicationInstanceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getApplicationInstance_Type() {
+ return (EReference) applicationInstanceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getApplicationInstance_AllocatedTo() {
+ return (EReference) applicationInstanceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getResourceRequirement() {
+ return resourceRequirementEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getResourceRequirement_RequiredMemory() {
+ return (EAttribute) resourceRequirementEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getResourceRequirement_RequiredHdd() {
+ return (EAttribute) resourceRequirementEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getResourceRequirement_HostType() {
+ return (EReference) resourceRequirementEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getHostInstance() {
+ return hostInstanceEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getHostInstance_Type() {
+ return (EReference) hostInstanceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostInstance_AvailableMemory() {
+ return (EAttribute) hostInstanceEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostInstance_AvailableHdd() {
+ return (EAttribute) hostInstanceEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostInstance_TotalMemory() {
+ return (EAttribute) hostInstanceEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getHostInstance_TotalHdd() {
+ return (EAttribute) hostInstanceEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getHostInstance_Applications() {
+ return (EReference) hostInstanceEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public CpsFactory getCpsFactory() {
+ return (CpsFactory) getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @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.
+ *
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (isCreated)
+ return;
+ isCreated = true;
+
+ // Create classes and their features
+ cyberPhysicalSystemEClass = createEClass(CYBER_PHYSICAL_SYSTEM);
+ createEReference(cyberPhysicalSystemEClass, CYBER_PHYSICAL_SYSTEM__REQUESTS);
+ createEReference(cyberPhysicalSystemEClass, CYBER_PHYSICAL_SYSTEM__APPLICATION_TYPES);
+ createEReference(cyberPhysicalSystemEClass, CYBER_PHYSICAL_SYSTEM__HOST_TYPES);
+ createEReference(cyberPhysicalSystemEClass, CYBER_PHYSICAL_SYSTEM__HOSTS);
+ createEReference(cyberPhysicalSystemEClass, CYBER_PHYSICAL_SYSTEM__APPLICATIONS);
+
+ applicationTypeEClass = createEClass(APPLICATION_TYPE);
+ createEReference(applicationTypeEClass, APPLICATION_TYPE__INSTANCES);
+ createEReference(applicationTypeEClass, APPLICATION_TYPE__REQUIREMENTS);
+
+ hostTypeEClass = createEClass(HOST_TYPE);
+ createEAttribute(hostTypeEClass, HOST_TYPE__DEFAULT_MEMORY);
+ createEAttribute(hostTypeEClass, HOST_TYPE__DEFAULT_HDD);
+ createEReference(hostTypeEClass, HOST_TYPE__INSTANCES);
+ createEAttribute(hostTypeEClass, HOST_TYPE__COST);
+
+ requestEClass = createEClass(REQUEST);
+ createEReference(requestEClass, REQUEST__REQUIREMENTS);
+
+ requirementEClass = createEClass(REQUIREMENT);
+ createEReference(requirementEClass, REQUIREMENT__REQUEST);
+ createEAttribute(requirementEClass, REQUIREMENT__COUNT);
+ createEReference(requirementEClass, REQUIREMENT__TYPE);
+ createEReference(requirementEClass, REQUIREMENT__INSTANCES);
+
+ applicationInstanceEClass = createEClass(APPLICATION_INSTANCE);
+ createEReference(applicationInstanceEClass, APPLICATION_INSTANCE__REQUIREMENT);
+ createEReference(applicationInstanceEClass, APPLICATION_INSTANCE__TYPE);
+ createEReference(applicationInstanceEClass, APPLICATION_INSTANCE__ALLOCATED_TO);
+
+ resourceRequirementEClass = createEClass(RESOURCE_REQUIREMENT);
+ createEAttribute(resourceRequirementEClass, RESOURCE_REQUIREMENT__REQUIRED_MEMORY);
+ createEAttribute(resourceRequirementEClass, RESOURCE_REQUIREMENT__REQUIRED_HDD);
+ createEReference(resourceRequirementEClass, RESOURCE_REQUIREMENT__HOST_TYPE);
+
+ hostInstanceEClass = createEClass(HOST_INSTANCE);
+ createEReference(hostInstanceEClass, HOST_INSTANCE__TYPE);
+ createEAttribute(hostInstanceEClass, HOST_INSTANCE__AVAILABLE_MEMORY);
+ createEAttribute(hostInstanceEClass, HOST_INSTANCE__AVAILABLE_HDD);
+ createEAttribute(hostInstanceEClass, HOST_INSTANCE__TOTAL_MEMORY);
+ createEAttribute(hostInstanceEClass, HOST_INSTANCE__TOTAL_HDD);
+ createEReference(hostInstanceEClass, HOST_INSTANCE__APPLICATIONS);
+ }
+
+ /**
+ *
+ *
+ * @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.
+ *
+ *
+ * @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
+
+ // Initialize classes, features, and operations; add parameters
+ initEClass(cyberPhysicalSystemEClass, CyberPhysicalSystem.class, "CyberPhysicalSystem", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getCyberPhysicalSystem_Requests(), this.getRequest(), null, "requests", null, 0, -1,
+ CyberPhysicalSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCyberPhysicalSystem_ApplicationTypes(), this.getApplicationType(), null, "applicationTypes",
+ null, 0, -1, CyberPhysicalSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCyberPhysicalSystem_HostTypes(), this.getHostType(), null, "hostTypes", null, 0, -1,
+ CyberPhysicalSystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getCyberPhysicalSystem_Hosts(), this.getHostInstance(), null, "hosts", null, 0, -1,
+ CyberPhysicalSystem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getCyberPhysicalSystem_Applications(), this.getApplicationInstance(), null, "applications", null,
+ 0, -1, CyberPhysicalSystem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+ initEClass(applicationTypeEClass, ApplicationType.class, "ApplicationType", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getApplicationType_Instances(), this.getApplicationInstance(),
+ this.getApplicationInstance_Type(), "instances", null, 0, -1, ApplicationType.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ initEReference(getApplicationType_Requirements(), this.getResourceRequirement(), null, "requirements", null, 0,
+ -1, ApplicationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hostTypeEClass, HostType.class, "HostType", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getHostType_DefaultMemory(), ecorePackage.getEInt(), "defaultMemory", null, 1, 1, HostType.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostType_DefaultHdd(), ecorePackage.getEInt(), "defaultHdd", null, 1, 1, HostType.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getHostType_Instances(), this.getHostInstance(), this.getHostInstance_Type(), "instances", null,
+ 0, -1, HostType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostType_Cost(), ecorePackage.getEInt(), "cost", null, 1, 1, HostType.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(requestEClass, Request.class, "Request", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRequest_Requirements(), this.getRequirement(), this.getRequirement_Request(), "requirements",
+ null, 0, -1, Request.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(requirementEClass, Requirement.class, "Requirement", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getRequirement_Request(), this.getRequest(), this.getRequest_Requirements(), "request", null, 1,
+ 1, Requirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRequirement_Count(), ecorePackage.getEInt(), "count", null, 1, 1, Requirement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRequirement_Type(), this.getApplicationType(), null, "type", null, 0, 1, Requirement.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRequirement_Instances(), this.getApplicationInstance(),
+ this.getApplicationInstance_Requirement(), "instances", null, 0, -1, Requirement.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+
+ initEClass(applicationInstanceEClass, ApplicationInstance.class, "ApplicationInstance", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getApplicationInstance_Requirement(), this.getRequirement(), this.getRequirement_Instances(),
+ "requirement", null, 0, 1, ApplicationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getApplicationInstance_Type(), this.getApplicationType(), this.getApplicationType_Instances(),
+ "type", null, 1, 1, ApplicationInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getApplicationInstance_AllocatedTo(), this.getHostInstance(),
+ this.getHostInstance_Applications(), "allocatedTo", null, 1, 1, ApplicationInstance.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(resourceRequirementEClass, ResourceRequirement.class, "ResourceRequirement", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getResourceRequirement_RequiredMemory(), ecorePackage.getEInt(), "requiredMemory", null, 1, 1,
+ ResourceRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getResourceRequirement_RequiredHdd(), ecorePackage.getEInt(), "requiredHdd", null, 1, 1,
+ ResourceRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getResourceRequirement_HostType(), this.getHostType(), null, "hostType", null, 1, 1,
+ ResourceRequirement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(hostInstanceEClass, HostInstance.class, "HostInstance", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getHostInstance_Type(), this.getHostType(), this.getHostType_Instances(), "type", null, 1, 1,
+ HostInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostInstance_AvailableMemory(), ecorePackage.getEInt(), "availableMemory", null, 0, 1,
+ HostInstance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostInstance_AvailableHdd(), ecorePackage.getEInt(), "availableHdd", null, 0, 1,
+ HostInstance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostInstance_TotalMemory(), ecorePackage.getEInt(), "totalMemory", null, 0, 1,
+ HostInstance.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ IS_DERIVED, IS_ORDERED);
+ initEAttribute(getHostInstance_TotalHdd(), ecorePackage.getEInt(), "totalHdd", null, 0, 1, HostInstance.class,
+ IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ initEReference(getHostInstance_Applications(), this.getApplicationInstance(),
+ this.getApplicationInstance_AllocatedTo(), "applications", null, 0, -1, HostInstance.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Create resource
+ createResource(eNS_URI);
+
+ // Create annotations
+ // http://www.eclipse.org/emf/2002/Ecore
+ createEcoreAnnotations();
+ // org.eclipse.viatra.query.querybasedfeature
+ createOrgAnnotations();
+ }
+
+ /**
+ * Initializes the annotations for http://www.eclipse.org/emf/2002/Ecore.
+ *
+ *
+ * @generated
+ */
+ protected void createEcoreAnnotations() {
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation(this, source, new String[] { "settingDelegates", "org.eclipse.viatra.query.querybasedfeature" });
+ }
+
+ /**
+ * Initializes the annotations for org.eclipse.viatra.query.querybasedfeature.
+ *
+ *
+ * @generated
+ */
+ protected void createOrgAnnotations() {
+ String source = "org.eclipse.viatra.query.querybasedfeature";
+ addAnnotation(getCyberPhysicalSystem_Hosts(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.cpsHosts" });
+ addAnnotation(getCyberPhysicalSystem_Applications(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.cpsApplications" });
+ addAnnotation(getHostInstance_AvailableMemory(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.availableMemory" });
+ addAnnotation(getHostInstance_AvailableHdd(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.availableHdd" });
+ addAnnotation(getHostInstance_TotalMemory(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.totalMemory" });
+ addAnnotation(getHostInstance_TotalHdd(), source,
+ new String[] { "patternFQN", "hu.bme.mit.inf.dslreasoner.domains.cps.queries.totalHdd" });
+ }
+
+} //CpsPackageImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/CyberPhysicalSystemImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/CyberPhysicalSystemImpl.java
new file mode 100644
index 00000000..4d254f25
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/CyberPhysicalSystemImpl.java
@@ -0,0 +1,289 @@
+/**
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.impl;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
+import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
+import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
+import hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem;
+import hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance;
+import hu.bme.mit.inf.dslreasoner.domains.cps.HostType;
+import hu.bme.mit.inf.dslreasoner.domains.cps.Request;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ *
+ * An implementation of the model object 'Cyber Physical System'.
+ *
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ *
+ * The following features are implemented:
+ * Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private ApplicationInstance fApp;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pApp the fixed value of pattern parameter App, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static AllocationWithoutResourceRequirement.Match newMatch(final HostInstance pHost, final ApplicationInstance pApp) {
+ return new Immutable(pHost, pApp);
+ }
+
+ private static final class Mutable extends AllocationWithoutResourceRequirement.Match {
+ Mutable(final HostInstance pHost, final ApplicationInstance pApp) {
+ super(pHost, pApp);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends AllocationWithoutResourceRequirement.Match {
+ Immutable(final HostInstance pHost, final ApplicationInstance pApp) {
+ super(pHost, pApp);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.allocationWithoutResourceRequirement pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pApp the fixed value of pattern parameter App, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public AllocationWithoutResourceRequirement.Match newMatch(final HostInstance pHost, final ApplicationInstance pApp) {
+ return AllocationWithoutResourceRequirement.Match.newMatch(pHost, pApp);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getApplicationInstance()
+ * @model
+ * @generated
+ */
+public interface ApplicationInstance extends EObject {
+ /**
+ * Returns the value of the 'Requirement' reference.
+ * It is bidirectional and its opposite is '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getInstances Instances}'.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getApplicationType()
+ * @model
+ * @generated
+ */
+public interface ApplicationType extends EObject {
+ /**
+ * Returns the value of the 'Instances' containment reference list.
+ * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance}.
+ * It is bidirectional and its opposite is '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getType Type}'.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsFactory
+ * @model kind="package"
+ * annotation="http://www.eclipse.org/emf/2002/Ecore settingDelegates='org.eclipse.viatra.query.querybasedfeature'"
+ * @generated
+ */
+public interface CpsPackage extends EPackage {
+ /**
+ * The package name.
+ *
+ *
+ * @generated
+ */
+ String eNAME = "cps";
+
+ /**
+ * The package namespace URI.
+ *
+ *
+ * @generated
+ */
+ String eNS_URI = "http://www.example.org/cps";
+
+ /**
+ * The package namespace name.
+ *
+ *
+ * @generated
+ */
+ String eNS_PREFIX = "cps";
+
+ /**
+ * The singleton instance of the package.
+ *
+ *
+ * @generated
+ */
+ CpsPackage eINSTANCE = hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl.init();
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.CyberPhysicalSystemImpl Cyber Physical System}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CyberPhysicalSystemImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getCyberPhysicalSystem()
+ * @generated
+ */
+ int CYBER_PHYSICAL_SYSTEM = 0;
+
+ /**
+ * The feature id for the 'Requests' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM__REQUESTS = 0;
+
+ /**
+ * The feature id for the 'Application Types' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM__APPLICATION_TYPES = 1;
+
+ /**
+ * The feature id for the 'Host Types' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM__HOST_TYPES = 2;
+
+ /**
+ * The feature id for the 'Hosts' reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM__HOSTS = 3;
+
+ /**
+ * The feature id for the 'Applications' reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM__APPLICATIONS = 4;
+
+ /**
+ * The number of structural features of the 'Cyber Physical System' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM_FEATURE_COUNT = 5;
+
+ /**
+ * The number of operations of the 'Cyber Physical System' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CYBER_PHYSICAL_SYSTEM_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationTypeImpl Application Type}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationTypeImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getApplicationType()
+ * @generated
+ */
+ int APPLICATION_TYPE = 1;
+
+ /**
+ * The feature id for the 'Instances' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_TYPE__INSTANCES = 0;
+
+ /**
+ * The feature id for the 'Requirements' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_TYPE__REQUIREMENTS = 1;
+
+ /**
+ * The number of structural features of the 'Application Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_TYPE_FEATURE_COUNT = 2;
+
+ /**
+ * The number of operations of the 'Application Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_TYPE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostTypeImpl Host Type}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostTypeImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getHostType()
+ * @generated
+ */
+ int HOST_TYPE = 2;
+
+ /**
+ * The feature id for the 'Default Memory' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE__DEFAULT_MEMORY = 0;
+
+ /**
+ * The feature id for the 'Default Hdd' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE__DEFAULT_HDD = 1;
+
+ /**
+ * The feature id for the 'Instances' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE__INSTANCES = 2;
+
+ /**
+ * The feature id for the 'Cost' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE__COST = 3;
+
+ /**
+ * The number of structural features of the 'Host Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the 'Host Type' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_TYPE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequestImpl Request}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequestImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getRequest()
+ * @generated
+ */
+ int REQUEST = 3;
+
+ /**
+ * The feature id for the 'Requirements' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUEST__REQUIREMENTS = 0;
+
+ /**
+ * The number of structural features of the 'Request' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUEST_FEATURE_COUNT = 1;
+
+ /**
+ * The number of operations of the 'Request' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUEST_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequirementImpl Requirement}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequirementImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getRequirement()
+ * @generated
+ */
+ int REQUIREMENT = 4;
+
+ /**
+ * The feature id for the 'Request' container reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__REQUEST = 0;
+
+ /**
+ * The feature id for the 'Count' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__COUNT = 1;
+
+ /**
+ * The feature id for the 'Type' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__TYPE = 2;
+
+ /**
+ * The feature id for the 'Instances' reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT__INSTANCES = 3;
+
+ /**
+ * The number of structural features of the 'Requirement' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT_FEATURE_COUNT = 4;
+
+ /**
+ * The number of operations of the 'Requirement' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REQUIREMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationInstanceImpl Application Instance}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationInstanceImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getApplicationInstance()
+ * @generated
+ */
+ int APPLICATION_INSTANCE = 5;
+
+ /**
+ * The feature id for the 'Requirement' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_INSTANCE__REQUIREMENT = 0;
+
+ /**
+ * The feature id for the 'Type' container reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_INSTANCE__TYPE = 1;
+
+ /**
+ * The feature id for the 'Allocated To' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_INSTANCE__ALLOCATED_TO = 2;
+
+ /**
+ * The number of structural features of the 'Application Instance' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_INSTANCE_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the 'Application Instance' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int APPLICATION_INSTANCE_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ResourceRequirementImpl Resource Requirement}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ResourceRequirementImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getResourceRequirement()
+ * @generated
+ */
+ int RESOURCE_REQUIREMENT = 6;
+
+ /**
+ * The feature id for the 'Required Memory' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_REQUIREMENT__REQUIRED_MEMORY = 0;
+
+ /**
+ * The feature id for the 'Required Hdd' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_REQUIREMENT__REQUIRED_HDD = 1;
+
+ /**
+ * The feature id for the 'Host Type' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_REQUIREMENT__HOST_TYPE = 2;
+
+ /**
+ * The number of structural features of the 'Resource Requirement' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_REQUIREMENT_FEATURE_COUNT = 3;
+
+ /**
+ * The number of operations of the 'Resource Requirement' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int RESOURCE_REQUIREMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostInstanceImpl Host Instance}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostInstanceImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getHostInstance()
+ * @generated
+ */
+ int HOST_INSTANCE = 7;
+
+ /**
+ * The feature id for the 'Type' container reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__TYPE = 0;
+
+ /**
+ * The feature id for the 'Available Memory' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__AVAILABLE_MEMORY = 1;
+
+ /**
+ * The feature id for the 'Available Hdd' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__AVAILABLE_HDD = 2;
+
+ /**
+ * The feature id for the 'Total Memory' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__TOTAL_MEMORY = 3;
+
+ /**
+ * The feature id for the 'Total Hdd' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__TOTAL_HDD = 4;
+
+ /**
+ * The feature id for the 'Applications' reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE__APPLICATIONS = 5;
+
+ /**
+ * The number of structural features of the 'Host Instance' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE_FEATURE_COUNT = 6;
+
+ /**
+ * The number of operations of the 'Host Instance' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int HOST_INSTANCE_OPERATION_COUNT = 0;
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem Cyber Physical System}'.
+ *
+ *
+ * @return the meta object for class 'Cyber Physical System'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem
+ * @generated
+ */
+ EClass getCyberPhysicalSystem();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getRequests Requests}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Requests'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getRequests()
+ * @see #getCyberPhysicalSystem()
+ * @generated
+ */
+ EReference getCyberPhysicalSystem_Requests();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getApplicationTypes Application Types}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Application Types'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getApplicationTypes()
+ * @see #getCyberPhysicalSystem()
+ * @generated
+ */
+ EReference getCyberPhysicalSystem_ApplicationTypes();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getHostTypes Host Types}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Host Types'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getHostTypes()
+ * @see #getCyberPhysicalSystem()
+ * @generated
+ */
+ EReference getCyberPhysicalSystem_HostTypes();
+
+ /**
+ * Returns the meta object for the reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getHosts Hosts}'.
+ *
+ *
+ * @return the meta object for the reference list 'Hosts'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getHosts()
+ * @see #getCyberPhysicalSystem()
+ * @generated
+ */
+ EReference getCyberPhysicalSystem_Hosts();
+
+ /**
+ * Returns the meta object for the reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getApplications Applications}'.
+ *
+ *
+ * @return the meta object for the reference list 'Applications'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem#getApplications()
+ * @see #getCyberPhysicalSystem()
+ * @generated
+ */
+ EReference getCyberPhysicalSystem_Applications();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType Application Type}'.
+ *
+ *
+ * @return the meta object for class 'Application Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType
+ * @generated
+ */
+ EClass getApplicationType();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType#getInstances Instances}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Instances'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType#getInstances()
+ * @see #getApplicationType()
+ * @generated
+ */
+ EReference getApplicationType_Instances();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType#getRequirements Requirements}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Requirements'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType#getRequirements()
+ * @see #getApplicationType()
+ * @generated
+ */
+ EReference getApplicationType_Requirements();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType Host Type}'.
+ *
+ *
+ * @return the meta object for class 'Host Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType
+ * @generated
+ */
+ EClass getHostType();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getDefaultMemory Default Memory}'.
+ *
+ *
+ * @return the meta object for the attribute 'Default Memory'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getDefaultMemory()
+ * @see #getHostType()
+ * @generated
+ */
+ EAttribute getHostType_DefaultMemory();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getDefaultHdd Default Hdd}'.
+ *
+ *
+ * @return the meta object for the attribute 'Default Hdd'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getDefaultHdd()
+ * @see #getHostType()
+ * @generated
+ */
+ EAttribute getHostType_DefaultHdd();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getInstances Instances}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Instances'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getInstances()
+ * @see #getHostType()
+ * @generated
+ */
+ EReference getHostType_Instances();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getCost Cost}'.
+ *
+ *
+ * @return the meta object for the attribute 'Cost'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getCost()
+ * @see #getHostType()
+ * @generated
+ */
+ EAttribute getHostType_Cost();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Request Request}'.
+ *
+ *
+ * @return the meta object for class 'Request'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Request
+ * @generated
+ */
+ EClass getRequest();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Request#getRequirements Requirements}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Requirements'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Request#getRequirements()
+ * @see #getRequest()
+ * @generated
+ */
+ EReference getRequest_Requirements();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement Requirement}'.
+ *
+ *
+ * @return the meta object for class 'Requirement'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement
+ * @generated
+ */
+ EClass getRequirement();
+
+ /**
+ * Returns the meta object for the container reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getRequest Request}'.
+ *
+ *
+ * @return the meta object for the container reference 'Request'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getRequest()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_Request();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getCount Count}'.
+ *
+ *
+ * @return the meta object for the attribute 'Count'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getCount()
+ * @see #getRequirement()
+ * @generated
+ */
+ EAttribute getRequirement_Count();
+
+ /**
+ * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getType Type}'.
+ *
+ *
+ * @return the meta object for the reference 'Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getType()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_Type();
+
+ /**
+ * Returns the meta object for the reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getInstances Instances}'.
+ *
+ *
+ * @return the meta object for the reference list 'Instances'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getInstances()
+ * @see #getRequirement()
+ * @generated
+ */
+ EReference getRequirement_Instances();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance Application Instance}'.
+ *
+ *
+ * @return the meta object for class 'Application Instance'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance
+ * @generated
+ */
+ EClass getApplicationInstance();
+
+ /**
+ * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getRequirement Requirement}'.
+ *
+ *
+ * @return the meta object for the reference 'Requirement'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getRequirement()
+ * @see #getApplicationInstance()
+ * @generated
+ */
+ EReference getApplicationInstance_Requirement();
+
+ /**
+ * Returns the meta object for the container reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getType Type}'.
+ *
+ *
+ * @return the meta object for the container reference 'Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getType()
+ * @see #getApplicationInstance()
+ * @generated
+ */
+ EReference getApplicationInstance_Type();
+
+ /**
+ * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getAllocatedTo Allocated To}'.
+ *
+ *
+ * @return the meta object for the reference 'Allocated To'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance#getAllocatedTo()
+ * @see #getApplicationInstance()
+ * @generated
+ */
+ EReference getApplicationInstance_AllocatedTo();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement Resource Requirement}'.
+ *
+ *
+ * @return the meta object for class 'Resource Requirement'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement
+ * @generated
+ */
+ EClass getResourceRequirement();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getRequiredMemory Required Memory}'.
+ *
+ *
+ * @return the meta object for the attribute 'Required Memory'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getRequiredMemory()
+ * @see #getResourceRequirement()
+ * @generated
+ */
+ EAttribute getResourceRequirement_RequiredMemory();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getRequiredHdd Required Hdd}'.
+ *
+ *
+ * @return the meta object for the attribute 'Required Hdd'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getRequiredHdd()
+ * @see #getResourceRequirement()
+ * @generated
+ */
+ EAttribute getResourceRequirement_RequiredHdd();
+
+ /**
+ * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getHostType Host Type}'.
+ *
+ *
+ * @return the meta object for the reference 'Host Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement#getHostType()
+ * @see #getResourceRequirement()
+ * @generated
+ */
+ EReference getResourceRequirement_HostType();
+
+ /**
+ * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance Host Instance}'.
+ *
+ *
+ * @return the meta object for class 'Host Instance'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance
+ * @generated
+ */
+ EClass getHostInstance();
+
+ /**
+ * Returns the meta object for the container reference '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getType Type}'.
+ *
+ *
+ * @return the meta object for the container reference 'Type'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getType()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EReference getHostInstance_Type();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getAvailableMemory Available Memory}'.
+ *
+ *
+ * @return the meta object for the attribute 'Available Memory'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getAvailableMemory()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EAttribute getHostInstance_AvailableMemory();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getAvailableHdd Available Hdd}'.
+ *
+ *
+ * @return the meta object for the attribute 'Available Hdd'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getAvailableHdd()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EAttribute getHostInstance_AvailableHdd();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getTotalMemory Total Memory}'.
+ *
+ *
+ * @return the meta object for the attribute 'Total Memory'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getTotalMemory()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EAttribute getHostInstance_TotalMemory();
+
+ /**
+ * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getTotalHdd Total Hdd}'.
+ *
+ *
+ * @return the meta object for the attribute 'Total Hdd'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getTotalHdd()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EAttribute getHostInstance_TotalHdd();
+
+ /**
+ * Returns the meta object for the reference list '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getApplications Applications}'.
+ *
+ *
+ * @return the meta object for the reference list 'Applications'.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance#getApplications()
+ * @see #getHostInstance()
+ * @generated
+ */
+ EReference getHostInstance_Applications();
+
+ /**
+ * Returns the factory that creates the instances of the model.
+ *
+ *
+ * @return the factory that creates the instances of the model.
+ * @generated
+ */
+ CpsFactory getCpsFactory();
+
+ /**
+ *
+ * Defines literals for the meta objects that represent
+ *
+ *
+ *
+ * @generated
+ */
+ interface Literals {
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.CyberPhysicalSystemImpl Cyber Physical System}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CyberPhysicalSystemImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getCyberPhysicalSystem()
+ * @generated
+ */
+ EClass CYBER_PHYSICAL_SYSTEM = eINSTANCE.getCyberPhysicalSystem();
+
+ /**
+ * The meta object literal for the 'Requests' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference CYBER_PHYSICAL_SYSTEM__REQUESTS = eINSTANCE.getCyberPhysicalSystem_Requests();
+
+ /**
+ * The meta object literal for the 'Application Types' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference CYBER_PHYSICAL_SYSTEM__APPLICATION_TYPES = eINSTANCE.getCyberPhysicalSystem_ApplicationTypes();
+
+ /**
+ * The meta object literal for the 'Host Types' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference CYBER_PHYSICAL_SYSTEM__HOST_TYPES = eINSTANCE.getCyberPhysicalSystem_HostTypes();
+
+ /**
+ * The meta object literal for the 'Hosts' reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference CYBER_PHYSICAL_SYSTEM__HOSTS = eINSTANCE.getCyberPhysicalSystem_Hosts();
+
+ /**
+ * The meta object literal for the 'Applications' reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference CYBER_PHYSICAL_SYSTEM__APPLICATIONS = eINSTANCE.getCyberPhysicalSystem_Applications();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationTypeImpl Application Type}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationTypeImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getApplicationType()
+ * @generated
+ */
+ EClass APPLICATION_TYPE = eINSTANCE.getApplicationType();
+
+ /**
+ * The meta object literal for the 'Instances' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference APPLICATION_TYPE__INSTANCES = eINSTANCE.getApplicationType_Instances();
+
+ /**
+ * The meta object literal for the 'Requirements' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference APPLICATION_TYPE__REQUIREMENTS = eINSTANCE.getApplicationType_Requirements();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostTypeImpl Host Type}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostTypeImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getHostType()
+ * @generated
+ */
+ EClass HOST_TYPE = eINSTANCE.getHostType();
+
+ /**
+ * The meta object literal for the 'Default Memory' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_TYPE__DEFAULT_MEMORY = eINSTANCE.getHostType_DefaultMemory();
+
+ /**
+ * The meta object literal for the 'Default Hdd' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_TYPE__DEFAULT_HDD = eINSTANCE.getHostType_DefaultHdd();
+
+ /**
+ * The meta object literal for the 'Instances' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference HOST_TYPE__INSTANCES = eINSTANCE.getHostType_Instances();
+
+ /**
+ * The meta object literal for the 'Cost' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_TYPE__COST = eINSTANCE.getHostType_Cost();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequestImpl Request}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequestImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getRequest()
+ * @generated
+ */
+ EClass REQUEST = eINSTANCE.getRequest();
+
+ /**
+ * The meta object literal for the 'Requirements' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference REQUEST__REQUIREMENTS = eINSTANCE.getRequest_Requirements();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequirementImpl Requirement}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.RequirementImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getRequirement()
+ * @generated
+ */
+ EClass REQUIREMENT = eINSTANCE.getRequirement();
+
+ /**
+ * The meta object literal for the 'Request' container reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference REQUIREMENT__REQUEST = eINSTANCE.getRequirement_Request();
+
+ /**
+ * The meta object literal for the 'Count' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute REQUIREMENT__COUNT = eINSTANCE.getRequirement_Count();
+
+ /**
+ * The meta object literal for the 'Type' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference REQUIREMENT__TYPE = eINSTANCE.getRequirement_Type();
+
+ /**
+ * The meta object literal for the 'Instances' reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference REQUIREMENT__INSTANCES = eINSTANCE.getRequirement_Instances();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationInstanceImpl Application Instance}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ApplicationInstanceImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getApplicationInstance()
+ * @generated
+ */
+ EClass APPLICATION_INSTANCE = eINSTANCE.getApplicationInstance();
+
+ /**
+ * The meta object literal for the 'Requirement' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference APPLICATION_INSTANCE__REQUIREMENT = eINSTANCE.getApplicationInstance_Requirement();
+
+ /**
+ * The meta object literal for the 'Type' container reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference APPLICATION_INSTANCE__TYPE = eINSTANCE.getApplicationInstance_Type();
+
+ /**
+ * The meta object literal for the 'Allocated To' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference APPLICATION_INSTANCE__ALLOCATED_TO = eINSTANCE.getApplicationInstance_AllocatedTo();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.ResourceRequirementImpl Resource Requirement}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.ResourceRequirementImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getResourceRequirement()
+ * @generated
+ */
+ EClass RESOURCE_REQUIREMENT = eINSTANCE.getResourceRequirement();
+
+ /**
+ * The meta object literal for the 'Required Memory' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute RESOURCE_REQUIREMENT__REQUIRED_MEMORY = eINSTANCE.getResourceRequirement_RequiredMemory();
+
+ /**
+ * The meta object literal for the 'Required Hdd' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute RESOURCE_REQUIREMENT__REQUIRED_HDD = eINSTANCE.getResourceRequirement_RequiredHdd();
+
+ /**
+ * The meta object literal for the 'Host Type' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference RESOURCE_REQUIREMENT__HOST_TYPE = eINSTANCE.getResourceRequirement_HostType();
+
+ /**
+ * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostInstanceImpl Host Instance}' class.
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.HostInstanceImpl
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.impl.CpsPackageImpl#getHostInstance()
+ * @generated
+ */
+ EClass HOST_INSTANCE = eINSTANCE.getHostInstance();
+
+ /**
+ * The meta object literal for the 'Type' container reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference HOST_INSTANCE__TYPE = eINSTANCE.getHostInstance_Type();
+
+ /**
+ * The meta object literal for the 'Available Memory' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_INSTANCE__AVAILABLE_MEMORY = eINSTANCE.getHostInstance_AvailableMemory();
+
+ /**
+ * The meta object literal for the 'Available Hdd' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_INSTANCE__AVAILABLE_HDD = eINSTANCE.getHostInstance_AvailableHdd();
+
+ /**
+ * The meta object literal for the 'Total Memory' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_INSTANCE__TOTAL_MEMORY = eINSTANCE.getHostInstance_TotalMemory();
+
+ /**
+ * The meta object literal for the 'Total Hdd' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute HOST_INSTANCE__TOTAL_HDD = eINSTANCE.getHostInstance_TotalHdd();
+
+ /**
+ * The meta object literal for the 'Applications' reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference HOST_INSTANCE__APPLICATIONS = eINSTANCE.getHostInstance_Applications();
+
+ }
+
+} //CpsPackage
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/CyberPhysicalSystem.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/CyberPhysicalSystem.java
new file mode 100644
index 00000000..541916ba
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/CyberPhysicalSystem.java
@@ -0,0 +1,112 @@
+/**
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Cyber Physical System'.
+ *
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getCyberPhysicalSystem()
+ * @model
+ * @generated
+ */
+public interface CyberPhysicalSystem extends EObject {
+ /**
+ * Returns the value of the 'Requests' containment reference list.
+ * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.domains.cps.Request}.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getHostInstance()
+ * @model
+ * @generated
+ */
+public interface HostInstance extends EObject {
+ /**
+ * Returns the value of the 'Type' container reference.
+ * It is bidirectional and its opposite is '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType#getInstances Instances}'.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getHostType()
+ * @model
+ * @generated
+ */
+public interface HostType extends EObject {
+ /**
+ * Returns the value of the 'Default Memory' attribute.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getRequest()
+ * @model
+ * @generated
+ */
+public interface Request extends EObject {
+ /**
+ * Returns the value of the 'Requirements' containment reference list.
+ * The list contents are of type {@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement}.
+ * It is bidirectional and its opposite is '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement#getRequest Request}'.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getRequirement()
+ * @model
+ * @generated
+ */
+public interface Requirement extends EObject {
+ /**
+ * Returns the value of the 'Request' container reference.
+ * It is bidirectional and its opposite is '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Request#getRequirements Requirements}'.
+ *
+ *
+ *
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage#getResourceRequirement()
+ * @model
+ * @generated
+ */
+public interface ResourceRequirement extends EObject {
+ /**
+ * Returns the value of the 'Required Memory' attribute.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public class ApplicationInstanceImpl extends MinimalEObjectImpl.Container implements ApplicationInstance {
+ /**
+ * The cached value of the '{@link #getRequirement() Requirement}' reference.
+ *
+ *
+ * @see #getRequirement()
+ * @generated
+ * @ordered
+ */
+ protected Requirement requirement;
+
+ /**
+ * The cached value of the '{@link #getAllocatedTo() Allocated To}' reference.
+ *
+ *
+ * @see #getAllocatedTo()
+ * @generated
+ * @ordered
+ */
+ protected HostInstance allocatedTo;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ApplicationInstanceImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CpsPackage.Literals.APPLICATION_INSTANCE;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Requirement getRequirement() {
+ if (requirement != null && requirement.eIsProxy()) {
+ InternalEObject oldRequirement = (InternalEObject) requirement;
+ requirement = (Requirement) eResolveProxy(oldRequirement);
+ if (requirement != oldRequirement) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ CpsPackage.APPLICATION_INSTANCE__REQUIREMENT, oldRequirement, requirement));
+ }
+ }
+ return requirement;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Requirement basicGetRequirement() {
+ return requirement;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetRequirement(Requirement newRequirement, NotificationChain msgs) {
+ Requirement oldRequirement = requirement;
+ requirement = newRequirement;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ CpsPackage.APPLICATION_INSTANCE__REQUIREMENT, oldRequirement, newRequirement);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setRequirement(Requirement newRequirement) {
+ if (newRequirement != requirement) {
+ NotificationChain msgs = null;
+ if (requirement != null)
+ msgs = ((InternalEObject) requirement).eInverseRemove(this, CpsPackage.REQUIREMENT__INSTANCES,
+ Requirement.class, msgs);
+ if (newRequirement != null)
+ msgs = ((InternalEObject) newRequirement).eInverseAdd(this, CpsPackage.REQUIREMENT__INSTANCES,
+ Requirement.class, msgs);
+ msgs = basicSetRequirement(newRequirement, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.APPLICATION_INSTANCE__REQUIREMENT,
+ newRequirement, newRequirement));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public ApplicationType getType() {
+ if (eContainerFeatureID() != CpsPackage.APPLICATION_INSTANCE__TYPE)
+ return null;
+ return (ApplicationType) eInternalContainer();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetType(ApplicationType newType, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject) newType, CpsPackage.APPLICATION_INSTANCE__TYPE, msgs);
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setType(ApplicationType newType) {
+ if (newType != eInternalContainer()
+ || (eContainerFeatureID() != CpsPackage.APPLICATION_INSTANCE__TYPE && newType != null)) {
+ if (EcoreUtil.isAncestor(this, newType))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newType != null)
+ msgs = ((InternalEObject) newType).eInverseAdd(this, CpsPackage.APPLICATION_TYPE__INSTANCES,
+ ApplicationType.class, msgs);
+ msgs = basicSetType(newType, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.APPLICATION_INSTANCE__TYPE, newType,
+ newType));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public HostInstance getAllocatedTo() {
+ if (allocatedTo != null && allocatedTo.eIsProxy()) {
+ InternalEObject oldAllocatedTo = (InternalEObject) allocatedTo;
+ allocatedTo = (HostInstance) eResolveProxy(oldAllocatedTo);
+ if (allocatedTo != oldAllocatedTo) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO, oldAllocatedTo, allocatedTo));
+ }
+ }
+ return allocatedTo;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public HostInstance basicGetAllocatedTo() {
+ return allocatedTo;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetAllocatedTo(HostInstance newAllocatedTo, NotificationChain msgs) {
+ HostInstance oldAllocatedTo = allocatedTo;
+ allocatedTo = newAllocatedTo;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO, oldAllocatedTo, newAllocatedTo);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setAllocatedTo(HostInstance newAllocatedTo) {
+ if (newAllocatedTo != allocatedTo) {
+ NotificationChain msgs = null;
+ if (allocatedTo != null)
+ msgs = ((InternalEObject) allocatedTo).eInverseRemove(this, CpsPackage.HOST_INSTANCE__APPLICATIONS,
+ HostInstance.class, msgs);
+ if (newAllocatedTo != null)
+ msgs = ((InternalEObject) newAllocatedTo).eInverseAdd(this, CpsPackage.HOST_INSTANCE__APPLICATIONS,
+ HostInstance.class, msgs);
+ msgs = basicSetAllocatedTo(newAllocatedTo, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO,
+ newAllocatedTo, newAllocatedTo));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ if (requirement != null)
+ msgs = ((InternalEObject) requirement).eInverseRemove(this, CpsPackage.REQUIREMENT__INSTANCES,
+ Requirement.class, msgs);
+ return basicSetRequirement((Requirement) otherEnd, msgs);
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetType((ApplicationType) otherEnd, msgs);
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ if (allocatedTo != null)
+ msgs = ((InternalEObject) allocatedTo).eInverseRemove(this, CpsPackage.HOST_INSTANCE__APPLICATIONS,
+ HostInstance.class, msgs);
+ return basicSetAllocatedTo((HostInstance) otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ return basicSetRequirement(null, msgs);
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ return basicSetType(null, msgs);
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ return basicSetAllocatedTo(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ return eInternalContainer().eInverseRemove(this, CpsPackage.APPLICATION_TYPE__INSTANCES,
+ ApplicationType.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ if (resolve)
+ return getRequirement();
+ return basicGetRequirement();
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ return getType();
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ if (resolve)
+ return getAllocatedTo();
+ return basicGetAllocatedTo();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ setRequirement((Requirement) newValue);
+ return;
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ setType((ApplicationType) newValue);
+ return;
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ setAllocatedTo((HostInstance) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ setRequirement((Requirement) null);
+ return;
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ setType((ApplicationType) null);
+ return;
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ setAllocatedTo((HostInstance) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CpsPackage.APPLICATION_INSTANCE__REQUIREMENT:
+ return requirement != null;
+ case CpsPackage.APPLICATION_INSTANCE__TYPE:
+ return getType() != null;
+ case CpsPackage.APPLICATION_INSTANCE__ALLOCATED_TO:
+ return allocatedTo != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ApplicationInstanceImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/ApplicationTypeImpl.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/ApplicationTypeImpl.java
new file mode 100644
index 00000000..f8793e30
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/impl/ApplicationTypeImpl.java
@@ -0,0 +1,209 @@
+/**
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.impl;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
+import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType;
+import hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage;
+import hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ *
+ * An implementation of the model object 'Application Type'.
+ *
+ *
+ *
+ *
+ * @generated
+ */
+public class ApplicationTypeImpl extends MinimalEObjectImpl.Container implements ApplicationType {
+ /**
+ * The cached value of the '{@link #getInstances() Instances}' containment reference list.
+ *
+ *
+ * @see #getInstances()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class CyberPhysicalSystemImpl extends MinimalEObjectImpl.Container implements CyberPhysicalSystem {
+ /**
+ * The cached value of the '{@link #getRequests() Requests}' containment reference list.
+ *
+ *
+ * @see #getRequests()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class HostInstanceImpl extends MinimalEObjectImpl.Container implements HostInstance {
+ /**
+ * The cached setting delegate for the '{@link #getAvailableMemory() Available Memory}' attribute.
+ *
+ *
+ * @see #getAvailableMemory()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate AVAILABLE_MEMORY__ESETTING_DELEGATE = ((EStructuralFeature.Internal) CpsPackage.Literals.HOST_INSTANCE__AVAILABLE_MEMORY)
+ .getSettingDelegate();
+
+ /**
+ * The cached setting delegate for the '{@link #getAvailableHdd() Available Hdd}' attribute.
+ *
+ *
+ * @see #getAvailableHdd()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate AVAILABLE_HDD__ESETTING_DELEGATE = ((EStructuralFeature.Internal) CpsPackage.Literals.HOST_INSTANCE__AVAILABLE_HDD)
+ .getSettingDelegate();
+
+ /**
+ * The cached setting delegate for the '{@link #getTotalMemory() Total Memory}' attribute.
+ *
+ *
+ * @see #getTotalMemory()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate TOTAL_MEMORY__ESETTING_DELEGATE = ((EStructuralFeature.Internal) CpsPackage.Literals.HOST_INSTANCE__TOTAL_MEMORY)
+ .getSettingDelegate();
+
+ /**
+ * The cached setting delegate for the '{@link #getTotalHdd() Total Hdd}' attribute.
+ *
+ *
+ * @see #getTotalHdd()
+ * @generated
+ * @ordered
+ */
+ protected EStructuralFeature.Internal.SettingDelegate TOTAL_HDD__ESETTING_DELEGATE = ((EStructuralFeature.Internal) CpsPackage.Literals.HOST_INSTANCE__TOTAL_HDD)
+ .getSettingDelegate();
+
+ /**
+ * The cached value of the '{@link #getApplications() Applications}' reference list.
+ *
+ *
+ * @see #getApplications()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class HostTypeImpl extends MinimalEObjectImpl.Container implements HostType {
+ /**
+ * The default value of the '{@link #getDefaultMemory() Default Memory}' attribute.
+ *
+ *
+ * @see #getDefaultMemory()
+ * @generated
+ * @ordered
+ */
+ protected static final int DEFAULT_MEMORY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDefaultMemory() Default Memory}' attribute.
+ *
+ *
+ * @see #getDefaultMemory()
+ * @generated
+ * @ordered
+ */
+ protected int defaultMemory = DEFAULT_MEMORY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDefaultHdd() Default Hdd}' attribute.
+ *
+ *
+ * @see #getDefaultHdd()
+ * @generated
+ * @ordered
+ */
+ protected static final int DEFAULT_HDD_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getDefaultHdd() Default Hdd}' attribute.
+ *
+ *
+ * @see #getDefaultHdd()
+ * @generated
+ * @ordered
+ */
+ protected int defaultHdd = DEFAULT_HDD_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getInstances() Instances}' containment reference list.
+ *
+ *
+ * @see #getInstances()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class RequestImpl extends MinimalEObjectImpl.Container implements Request {
+ /**
+ * The cached value of the '{@link #getRequirements() Requirements}' containment reference list.
+ *
+ *
+ * @see #getRequirements()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class RequirementImpl extends MinimalEObjectImpl.Container implements Requirement {
+ /**
+ * The default value of the '{@link #getCount() Count}' attribute.
+ *
+ *
+ * @see #getCount()
+ * @generated
+ * @ordered
+ */
+ protected static final int COUNT_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getCount() Count}' attribute.
+ *
+ *
+ * @see #getCount()
+ * @generated
+ * @ordered
+ */
+ protected int count = COUNT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getType() Type}' reference.
+ *
+ *
+ * @see #getType()
+ * @generated
+ * @ordered
+ */
+ protected ApplicationType type;
+
+ /**
+ * The cached value of the '{@link #getInstances() Instances}' reference list.
+ *
+ *
+ * @see #getInstances()
+ * @generated
+ * @ordered
+ */
+ protected EList
+ *
+ *
+ * @generated
+ */
+public class ResourceRequirementImpl extends MinimalEObjectImpl.Container implements ResourceRequirement {
+ /**
+ * The default value of the '{@link #getRequiredMemory() Required Memory}' attribute.
+ *
+ *
+ * @see #getRequiredMemory()
+ * @generated
+ * @ordered
+ */
+ protected static final int REQUIRED_MEMORY_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRequiredMemory() Required Memory}' attribute.
+ *
+ *
+ * @see #getRequiredMemory()
+ * @generated
+ * @ordered
+ */
+ protected int requiredMemory = REQUIRED_MEMORY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getRequiredHdd() Required Hdd}' attribute.
+ *
+ *
+ * @see #getRequiredHdd()
+ * @generated
+ * @ordered
+ */
+ protected static final int REQUIRED_HDD_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getRequiredHdd() Required Hdd}' attribute.
+ *
+ *
+ * @see #getRequiredHdd()
+ * @generated
+ * @ordered
+ */
+ protected int requiredHdd = REQUIRED_HDD_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getHostType() Host Type}' reference.
+ *
+ *
+ * @see #getHostType()
+ * @generated
+ * @ordered
+ */
+ protected HostType hostType;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ResourceRequirementImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return CpsPackage.Literals.RESOURCE_REQUIREMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public int getRequiredMemory() {
+ return requiredMemory;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setRequiredMemory(int newRequiredMemory) {
+ int oldRequiredMemory = requiredMemory;
+ requiredMemory = newRequiredMemory;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_MEMORY,
+ oldRequiredMemory, requiredMemory));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public int getRequiredHdd() {
+ return requiredHdd;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setRequiredHdd(int newRequiredHdd) {
+ int oldRequiredHdd = requiredHdd;
+ requiredHdd = newRequiredHdd;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_HDD,
+ oldRequiredHdd, requiredHdd));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public HostType getHostType() {
+ if (hostType != null && hostType.eIsProxy()) {
+ InternalEObject oldHostType = (InternalEObject) hostType;
+ hostType = (HostType) eResolveProxy(oldHostType);
+ if (hostType != oldHostType) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE, oldHostType, hostType));
+ }
+ }
+ return hostType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public HostType basicGetHostType() {
+ return hostType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setHostType(HostType newHostType) {
+ HostType oldHostType = hostType;
+ hostType = newHostType;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE,
+ oldHostType, hostType));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_MEMORY:
+ return getRequiredMemory();
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_HDD:
+ return getRequiredHdd();
+ case CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE:
+ if (resolve)
+ return getHostType();
+ return basicGetHostType();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_MEMORY:
+ setRequiredMemory((Integer) newValue);
+ return;
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_HDD:
+ setRequiredHdd((Integer) newValue);
+ return;
+ case CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE:
+ setHostType((HostType) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_MEMORY:
+ setRequiredMemory(REQUIRED_MEMORY_EDEFAULT);
+ return;
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_HDD:
+ setRequiredHdd(REQUIRED_HDD_EDEFAULT);
+ return;
+ case CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE:
+ setHostType((HostType) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_MEMORY:
+ return requiredMemory != REQUIRED_MEMORY_EDEFAULT;
+ case CpsPackage.RESOURCE_REQUIREMENT__REQUIRED_HDD:
+ return requiredHdd != REQUIRED_HDD_EDEFAULT;
+ case CpsPackage.RESOURCE_REQUIREMENT__HOST_TYPE:
+ return hostType != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (requiredMemory: ");
+ result.append(requiredMemory);
+ result.append(", requiredHdd: ");
+ result.append(requiredHdd);
+ result.append(')');
+ return result.toString();
+ }
+
+} //ResourceRequirementImpl
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsAdapterFactory.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsAdapterFactory.java
new file mode 100644
index 00000000..83e984a6
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsAdapterFactory.java
@@ -0,0 +1,252 @@
+/**
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.util;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.*;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * The Adapter Factory for the model.
+ * It provides an adapter createXXX
method for each class of the model.
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage
+ * @generated
+ */
+public class CpsAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ *
+ *
+ * @generated
+ */
+ protected static CpsPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ *
+ * @generated
+ */
+ public CpsAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = CpsPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object.
+ *
+ * This implementation returns true
if the object is either the model's package or is an instance object of the model.
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the createXXX
methods.
+ *
+ *
+ * @generated
+ */
+ protected CpsSwitchtarget
.
+ *
+ *
+ * @param target the object to adapt.
+ * @return the adapter for the target
.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem Cyber Physical System}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem
+ * @generated
+ */
+ public Adapter createCyberPhysicalSystemAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType Application Type}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationType
+ * @generated
+ */
+ public Adapter createApplicationTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostType Host Type}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostType
+ * @generated
+ */
+ public Adapter createHostTypeAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Request Request}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Request
+ * @generated
+ */
+ public Adapter createRequestAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.Requirement Requirement}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.Requirement
+ * @generated
+ */
+ public Adapter createRequirementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance Application Instance}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance
+ * @generated
+ */
+ public Adapter createApplicationInstanceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement Resource Requirement}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement
+ * @generated
+ */
+ public Adapter createResourceRequirementAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance Host Instance}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance
+ * @generated
+ */
+ public Adapter createHostInstanceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case.
+ *
+ * This default implementation returns null.
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} //CpsAdapterFactory
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsSwitch.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsSwitch.java
new file mode 100644
index 00000000..28b630a9
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/ecore-gen/hu/bme/mit/inf/dslreasoner/domains/cps/util/CpsSwitch.java
@@ -0,0 +1,266 @@
+/**
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.util;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.*;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ *
+ * The Switch for the model's inheritance hierarchy.
+ * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
+ * to invoke the caseXXX
method for each class of the model,
+ * starting with the actual class of the object
+ * and proceeding up the inheritance hierarchy
+ * until a non-null result is returned,
+ * which is the result of the switch.
+ *
+ * @see hu.bme.mit.inf.dslreasoner.domains.cps.CpsPackage
+ * @generated
+ */
+public class CpsSwitchcaseXXX
for each class of the model until one returns a non null result; it yields that result.
+ *
+ *
+ * @return the first non-null result returned by a caseXXX
call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case CpsPackage.CYBER_PHYSICAL_SYSTEM: {
+ CyberPhysicalSystem cyberPhysicalSystem = (CyberPhysicalSystem) theEObject;
+ T result = caseCyberPhysicalSystem(cyberPhysicalSystem);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.APPLICATION_TYPE: {
+ ApplicationType applicationType = (ApplicationType) theEObject;
+ T result = caseApplicationType(applicationType);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.HOST_TYPE: {
+ HostType hostType = (HostType) theEObject;
+ T result = caseHostType(hostType);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.REQUEST: {
+ Request request = (Request) theEObject;
+ T result = caseRequest(request);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.REQUIREMENT: {
+ Requirement requirement = (Requirement) theEObject;
+ T result = caseRequirement(requirement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.APPLICATION_INSTANCE: {
+ ApplicationInstance applicationInstance = (ApplicationInstance) theEObject;
+ T result = caseApplicationInstance(applicationInstance);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.RESOURCE_REQUIREMENT: {
+ ResourceRequirement resourceRequirement = (ResourceRequirement) theEObject;
+ T result = caseResourceRequirement(resourceRequirement);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case CpsPackage.HOST_INSTANCE: {
+ HostInstance hostInstance = (HostInstance) theEObject;
+ T result = caseHostInstance(hostInstance);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Cyber Physical System'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Cyber Physical System'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseCyberPhysicalSystem(CyberPhysicalSystem object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Application Type'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Application Type'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseApplicationType(ApplicationType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Host Type'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Host Type'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHostType(HostType object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Request'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Request'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRequest(Request object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Requirement'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Requirement'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRequirement(Requirement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Application Instance'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Application Instance'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseApplicationInstance(ApplicationInstance object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Resource Requirement'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Resource Requirement'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResourceRequirement(ResourceRequirement object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Host Instance'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Host Instance'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseHostInstance(HostInstance object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'EObject'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch, but this is the last case anyway.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'EObject'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} //CpsSwitch
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird
index d94d68b4..3f1b0301 100644
--- a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/model/cps.aird
@@ -3,6 +3,991 @@
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class AllocationWithoutResourceRequirement extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}Constraint(severity = "error", key = {Host, App},
+ * message = "Application instance must be allocated to a supported host type.")
+ * pattern allocationWithoutResourceRequirement(Host : HostInstance, App : ApplicationInstance) {
+ * ApplicationInstance.allocatedTo(App, Host);
+ * neg find resourceRequirement(Host, App, _);
+ * }
+ *
+ *
+ * @see Match
+ * @see AllocationWithoutResourceRequirement
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}Constraint(severity = "error", key = {Host, App},
+ * message = "Application instance must be allocated to a supported host type.")
+ * pattern allocationWithoutResourceRequirement(Host : HostInstance, App : ApplicationInstance) {
+ * ApplicationInstance.allocatedTo(App, Host);
+ * neg find resourceRequirement(Host, App, _);
+ * }
+ *
This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private static final AllocationWithoutResourceRequirement INSTANCE = new AllocationWithoutResourceRequirement(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *
The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final AllocationWithoutResourceRequirement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_App = new PParameter("App", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private Integer fHdd;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pHdd the fixed value of pattern parameter Hdd, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static AvailableHdd.Match newMatch(final HostInstance pHost, final Integer pHdd) {
+ return new Immutable(pHost, pHdd);
+ }
+
+ private static final class Mutable extends AvailableHdd.Match {
+ Mutable(final HostInstance pHost, final Integer pHdd) {
+ super(pHost, pHdd);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends AvailableHdd.Match {
+ Immutable(final HostInstance pHost, final Integer pHdd) {
+ super(pHost, pHdd);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.availableHdd pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pHdd the fixed value of pattern parameter Hdd, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public AvailableHdd.Match newMatch(final HostInstance pHost, final Integer pHdd) {
+ return AvailableHdd.Match.newMatch(pHost, pHdd);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class AvailableHdd extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "availableHdd")
+ * pattern availableHdd(Host : HostInstance, Hdd : java Integer) {
+ * find totalHdd(Host, TotalHdd);
+ * RequiredHdd == sum find hddRequirement(Host, _, #_);
+ * Hdd == eval(TotalHdd - RequiredHdd);
+ * }
+ *
+ *
+ * @see Match
+ * @see AvailableHdd
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "availableHdd")
+ * pattern availableHdd(Host : HostInstance, Hdd : java Integer) {
+ * find totalHdd(Host, TotalHdd);
+ * RequiredHdd == sum find hddRequirement(Host, _, #_);
+ * Hdd == eval(TotalHdd - RequiredHdd);
+ * }
+ *
This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private static final AvailableHdd INSTANCE = new AvailableHdd(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *
The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final AvailableHdd.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Hdd = new PParameter("Hdd", "java.lang.Integer", new JavaTransitiveInstancesKey(java.lang.Integer.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private Integer fMemory;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pMemory the fixed value of pattern parameter Memory, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static AvailableMemory.Match newMatch(final HostInstance pHost, final Integer pMemory) {
+ return new Immutable(pHost, pMemory);
+ }
+
+ private static final class Mutable extends AvailableMemory.Match {
+ Mutable(final HostInstance pHost, final Integer pMemory) {
+ super(pHost, pMemory);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends AvailableMemory.Match {
+ Immutable(final HostInstance pHost, final Integer pMemory) {
+ super(pHost, pMemory);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.availableMemory pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pMemory the fixed value of pattern parameter Memory, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public AvailableMemory.Match newMatch(final HostInstance pHost, final Integer pMemory) {
+ return AvailableMemory.Match.newMatch(pHost, pMemory);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class AvailableMemory extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "availableMemory")
+ * pattern availableMemory(Host : HostInstance, Memory : java Integer) {
+ * find totalMemory(Host, TotalMemory);
+ * RequiredMemory == sum find memoryRequirement(Host, _, #_);
+ * Memory == eval(TotalMemory - RequiredMemory);
+ * }
+ *
+ *
+ * @see Match
+ * @see AvailableMemory
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "availableMemory")
+ * pattern availableMemory(Host : HostInstance, Memory : java Integer) {
+ * find totalMemory(Host, TotalMemory);
+ * RequiredMemory == sum find memoryRequirement(Host, _, #_);
+ * Memory == eval(TotalMemory - RequiredMemory);
+ * }
+ *
This workaround is required e.g. to support recursion. + * + */ + private static class LazyHolder { + private static final AvailableMemory INSTANCE = new AvailableMemory(); + + /** + * Statically initializes the query specification after the field {@link #INSTANCE} is assigned. + * This initialization order is required to support indirect recursion. + * + *
The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final AvailableMemory.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Memory = new PParameter("Memory", "java.lang.Integer", new JavaTransitiveInstancesKey(java.lang.Integer.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private Double fAverage;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pAverage the fixed value of pattern parameter Average, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static AverageFreeHddMetric.Match newMatch(final Double pAverage) {
+ return new Immutable(pAverage);
+ }
+
+ private static final class Mutable extends AverageFreeHddMetric.Match {
+ Mutable(final Double pAverage) {
+ super(pAverage);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends AverageFreeHddMetric.Match {
+ Immutable(final Double pAverage) {
+ super(pAverage);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.averageFreeHddMetric pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pAverage the fixed value of pattern parameter Average, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public AverageFreeHddMetric.Match newMatch(final Double pAverage) {
+ return AverageFreeHddMetric.Match.newMatch(pAverage);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Average.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final AverageFreeHddMetric INSTANCE = new AverageFreeHddMetric();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final AverageFreeHddMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Average = new PParameter("Average", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private Double fAverage;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pAverage the fixed value of pattern parameter Average, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static AverageFreeMemoryMetric.Match newMatch(final Double pAverage) {
+ return new Immutable(pAverage);
+ }
+
+ private static final class Mutable extends AverageFreeMemoryMetric.Match {
+ Mutable(final Double pAverage) {
+ super(pAverage);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends AverageFreeMemoryMetric.Match {
+ Immutable(final Double pAverage) {
+ super(pAverage);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.averageFreeMemoryMetric pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pAverage the fixed value of pattern parameter Average, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public AverageFreeMemoryMetric.Match newMatch(final Double pAverage) {
+ return AverageFreeMemoryMetric.Match.newMatch(pAverage);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Average.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final AverageFreeMemoryMetric INSTANCE = new AverageFreeMemoryMetric();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final AverageFreeMemoryMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Average = new PParameter("Average", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private Integer fCost;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCost the fixed value of pattern parameter Cost, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static CostMetric.Match newMatch(final Integer pCost) {
+ return new Immutable(pCost);
+ }
+
+ private static final class Mutable extends CostMetric.Match {
+ Mutable(final Integer pCost) {
+ super(pCost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends CostMetric.Match {
+ Immutable(final Integer pCost) {
+ super(pCost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.costMetric pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCost the fixed value of pattern parameter Cost, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public CostMetric.Match newMatch(final Integer pCost) {
+ return CostMetric.Match.newMatch(pCost);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Cost.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final CostMetric INSTANCE = new CostMetric();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final CostMetric.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Integer", new JavaTransitiveInstancesKey(java.lang.Integer.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private CyberPhysicalSystem fCps;
+
+ private ApplicationInstance fAppInstance;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pAppInstance the fixed value of pattern parameter AppInstance, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static CpsApplications.Match newMatch(final CyberPhysicalSystem pCps, final ApplicationInstance pAppInstance) {
+ return new Immutable(pCps, pAppInstance);
+ }
+
+ private static final class Mutable extends CpsApplications.Match {
+ Mutable(final CyberPhysicalSystem pCps, final ApplicationInstance pAppInstance) {
+ super(pCps, pAppInstance);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends CpsApplications.Match {
+ Immutable(final CyberPhysicalSystem pCps, final ApplicationInstance pAppInstance) {
+ super(pCps, pAppInstance);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.cpsApplications pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pAppInstance the fixed value of pattern parameter AppInstance, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public CpsApplications.Match newMatch(final CyberPhysicalSystem pCps, final ApplicationInstance pAppInstance) {
+ return CpsApplications.Match.newMatch(pCps, pAppInstance);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Cps.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final CpsApplications INSTANCE = new CpsApplications();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final CpsApplications.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Cps = new PParameter("Cps", "hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "CyberPhysicalSystem")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_AppInstance = new PParameter("AppInstance", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private CyberPhysicalSystem fCps;
+
+ private Integer fCost;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pCost the fixed value of pattern parameter Cost, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static CpsCost.Match newMatch(final CyberPhysicalSystem pCps, final Integer pCost) {
+ return new Immutable(pCps, pCost);
+ }
+
+ private static final class Mutable extends CpsCost.Match {
+ Mutable(final CyberPhysicalSystem pCps, final Integer pCost) {
+ super(pCps, pCost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends CpsCost.Match {
+ Immutable(final CyberPhysicalSystem pCps, final Integer pCost) {
+ super(pCps, pCost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.cpsCost pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pCost the fixed value of pattern parameter Cost, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public CpsCost.Match newMatch(final CyberPhysicalSystem pCps, final Integer pCost) {
+ return CpsCost.Match.newMatch(pCps, pCost);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Cps.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final CpsCost INSTANCE = new CpsCost();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final CpsCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Cps = new PParameter("Cps", "hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "CyberPhysicalSystem")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Integer", new JavaTransitiveInstancesKey(java.lang.Integer.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private CyberPhysicalSystem fCps;
+
+ private HostInstance fHostInstance;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pHostInstance the fixed value of pattern parameter HostInstance, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static CpsHosts.Match newMatch(final CyberPhysicalSystem pCps, final HostInstance pHostInstance) {
+ return new Immutable(pCps, pHostInstance);
+ }
+
+ private static final class Mutable extends CpsHosts.Match {
+ Mutable(final CyberPhysicalSystem pCps, final HostInstance pHostInstance) {
+ super(pCps, pHostInstance);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends CpsHosts.Match {
+ Immutable(final CyberPhysicalSystem pCps, final HostInstance pHostInstance) {
+ super(pCps, pHostInstance);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.cpsHosts pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pCps the fixed value of pattern parameter Cps, or null if not bound.
+ * @param pHostInstance the fixed value of pattern parameter HostInstance, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public CpsHosts.Match newMatch(final CyberPhysicalSystem pCps, final HostInstance pHostInstance) {
+ return CpsHosts.Match.newMatch(pCps, pHostInstance);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Cps.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final CpsHosts INSTANCE = new CpsHosts();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final CpsHosts.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Cps = new PParameter("Cps", "hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "CyberPhysicalSystem")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_HostInstance = new PParameter("HostInstance", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final List Use the static instance as any {@link interface org.eclipse.viatra.query.runtime.api.IQueryGroup}, to conveniently prepare
+ * a VIATRA Query engine for matching all patterns originally defined in file CpsQueries.vql,
+ * in order to achieve better performance than one-by-one on-demand matcher initialization.
+ *
+ * From package hu.bme.mit.inf.dslreasoner.domains.cps.queries, the group contains the definition of the following patterns: Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private Requirement fReq;
+
+ private ApplicationInstance fApp;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pReq the fixed value of pattern parameter Req, or null if not bound.
+ * @param pApp the fixed value of pattern parameter App, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static InstanceDoesNotSatisfyRequirement.Match newMatch(final Requirement pReq, final ApplicationInstance pApp) {
+ return new Immutable(pReq, pApp);
+ }
+
+ private static final class Mutable extends InstanceDoesNotSatisfyRequirement.Match {
+ Mutable(final Requirement pReq, final ApplicationInstance pApp) {
+ super(pReq, pApp);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends InstanceDoesNotSatisfyRequirement.Match {
+ Immutable(final Requirement pReq, final ApplicationInstance pApp) {
+ super(pReq, pApp);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.instanceDoesNotSatisfyRequirement pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pReq the fixed value of pattern parameter Req, or null if not bound.
+ * @param pApp the fixed value of pattern parameter App, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public InstanceDoesNotSatisfyRequirement.Match newMatch(final Requirement pReq, final ApplicationInstance pApp) {
+ return InstanceDoesNotSatisfyRequirement.Match.newMatch(pReq, pApp);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Req.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final InstanceDoesNotSatisfyRequirement INSTANCE = new InstanceDoesNotSatisfyRequirement();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final InstanceDoesNotSatisfyRequirement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Req = new PParameter("Req", "hu.bme.mit.inf.dslreasoner.domains.cps.Requirement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "Requirement")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_App = new PParameter("App", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static NotEnoughAvailableHdd.Match newMatch(final HostInstance pHost) {
+ return new Immutable(pHost);
+ }
+
+ private static final class Mutable extends NotEnoughAvailableHdd.Match {
+ Mutable(final HostInstance pHost) {
+ super(pHost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends NotEnoughAvailableHdd.Match {
+ Immutable(final HostInstance pHost) {
+ super(pHost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.notEnoughAvailableHdd pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public NotEnoughAvailableHdd.Match newMatch(final HostInstance pHost) {
+ return NotEnoughAvailableHdd.Match.newMatch(pHost);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final NotEnoughAvailableHdd INSTANCE = new NotEnoughAvailableHdd();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final NotEnoughAvailableHdd.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static NotEnoughAvailableMemory.Match newMatch(final HostInstance pHost) {
+ return new Immutable(pHost);
+ }
+
+ private static final class Mutable extends NotEnoughAvailableMemory.Match {
+ Mutable(final HostInstance pHost) {
+ super(pHost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends NotEnoughAvailableMemory.Match {
+ Immutable(final HostInstance pHost) {
+ super(pHost);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.notEnoughAvailableMemory pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public NotEnoughAvailableMemory.Match newMatch(final HostInstance pHost) {
+ return NotEnoughAvailableMemory.Match.newMatch(pHost);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final NotEnoughAvailableMemory INSTANCE = new NotEnoughAvailableMemory();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final NotEnoughAvailableMemory.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private Requirement fReq;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pReq the fixed value of pattern parameter Req, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static RequirementNotSatisfied.Match newMatch(final Requirement pReq) {
+ return new Immutable(pReq);
+ }
+
+ private static final class Mutable extends RequirementNotSatisfied.Match {
+ Mutable(final Requirement pReq) {
+ super(pReq);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends RequirementNotSatisfied.Match {
+ Immutable(final Requirement pReq) {
+ super(pReq);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.requirementNotSatisfied pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pReq the fixed value of pattern parameter Req, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public RequirementNotSatisfied.Match newMatch(final Requirement pReq) {
+ return RequirementNotSatisfied.Match.newMatch(pReq);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Req.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final RequirementNotSatisfied INSTANCE = new RequirementNotSatisfied();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final RequirementNotSatisfied.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Req = new PParameter("Req", "hu.bme.mit.inf.dslreasoner.domains.cps.Requirement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "Requirement")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private Integer fHdd;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pHdd the fixed value of pattern parameter Hdd, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static TotalHdd.Match newMatch(final HostInstance pHost, final Integer pHdd) {
+ return new Immutable(pHost, pHdd);
+ }
+
+ private static final class Mutable extends TotalHdd.Match {
+ Mutable(final HostInstance pHost, final Integer pHdd) {
+ super(pHost, pHdd);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends TotalHdd.Match {
+ Immutable(final HostInstance pHost, final Integer pHdd) {
+ super(pHost, pHdd);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.totalHdd pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pHdd the fixed value of pattern parameter Hdd, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public TotalHdd.Match newMatch(final HostInstance pHost, final Integer pHdd) {
+ return TotalHdd.Match.newMatch(pHost, pHdd);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final TotalHdd INSTANCE = new TotalHdd();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final TotalHdd.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Hdd = new PParameter("Hdd", "java.lang.Integer", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EInt")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * Class fields correspond to parameters of the pattern. Fields with value null are considered unassigned.
+ * Each instance is a (possibly partial) substitution of pattern parameters,
+ * usable to represent a match of the pattern in the result of a query,
+ * or to specify the bound (fixed) input parameters when issuing a query.
+ *
+ * @see Matcher
+ *
+ */
+ public static abstract class Match extends BasePatternMatch {
+ private HostInstance fHost;
+
+ private Integer fMemory;
+
+ private static List The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pMemory the fixed value of pattern parameter Memory, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public static TotalMemory.Match newMatch(final HostInstance pHost, final Integer pMemory) {
+ return new Immutable(pHost, pMemory);
+ }
+
+ private static final class Mutable extends TotalMemory.Match {
+ Mutable(final HostInstance pHost, final Integer pMemory) {
+ super(pHost, pMemory);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return true;
+ }
+ }
+
+ private static final class Immutable extends TotalMemory.Match {
+ Immutable(final HostInstance pHost, final Integer pMemory) {
+ super(pHost, pMemory);
+ }
+
+ @Override
+ public boolean isMutable() {
+ return false;
+ }
+ }
+ }
+
+ /**
+ * Generated pattern matcher API of the hu.bme.mit.inf.dslreasoner.domains.cps.queries.totalMemory pattern,
+ * providing pattern-specific query methods.
+ *
+ * Use the pattern matcher on a given model via {@link #on(ViatraQueryEngine)},
+ * e.g. in conjunction with {@link ViatraQueryEngine#on(QueryScope)}.
+ *
+ * Matches of the pattern will be represented as {@link Match}.
+ *
+ * Original source:
+ * The returned match will be immutable. Use {@link #newEmptyMatch()} to obtain a mutable match object.
+ * @param pHost the fixed value of pattern parameter Host, or null if not bound.
+ * @param pMemory the fixed value of pattern parameter Memory, or null if not bound.
+ * @return the (partial) match object.
+ *
+ */
+ public TotalMemory.Match newMatch(final HostInstance pHost, final Integer pMemory) {
+ return TotalMemory.Match.newMatch(pHost, pMemory);
+ }
+
+ /**
+ * Retrieve the set of values that occur in matches for Host.
+ * @return the Set of all values or empty set if there are no matches
+ *
+ */
+ protected Stream This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final TotalMemory INSTANCE = new TotalMemory();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final TotalMemory.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Memory = new PParameter("Memory", "java.lang.Integer", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EInt")), PParameterDirection.INOUT);
+
+ private final List A private group that includes private patterns as well. Only intended use case is for pattern testing.
+ *
+ * From package hu.bme.mit.inf.dslreasoner.domains.cps.queries, the group contains the definition of the following patterns: Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final FreeHddPercentage INSTANCE = new FreeHddPercentage();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final FreeHddPercentage.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Free = new PParameter("Free", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final FreeMemoryPercentage INSTANCE = new FreeMemoryPercentage();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final FreeMemoryPercentage.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Free = new PParameter("Free", "java.lang.Double", new JavaTransitiveInstancesKey(java.lang.Double.class), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final HddRequirement INSTANCE = new HddRequirement();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final HddRequirement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_App = new PParameter("App", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Hdd = new PParameter("Hdd", "java.lang.Integer", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EInt")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final HostInstanceCost INSTANCE = new HostInstanceCost();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final HostInstanceCost.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Cps = new PParameter("Cps", "hu.bme.mit.inf.dslreasoner.domains.cps.CyberPhysicalSystem", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "CyberPhysicalSystem")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Cost = new PParameter("Cost", "java.lang.Integer", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EInt")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final MemoryRequirement INSTANCE = new MemoryRequirement();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final MemoryRequirement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_App = new PParameter("App", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Memory = new PParameter("Memory", "java.lang.Integer", new EDataTypeInSlotsKey((EDataType)getClassifierLiteralSafe("http://www.eclipse.org/emf/2002/Ecore", "EInt")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ * This workaround is required e.g. to support recursion.
+ *
+ */
+ private static class LazyHolder {
+ private static final ResourceRequirement INSTANCE = new ResourceRequirement();
+
+ /**
+ * Statically initializes the query specification after the field {@link #INSTANCE} is assigned.
+ * This initialization order is required to support indirect recursion.
+ *
+ * The static initializer is defined using a helper field to work around limitations of the code generator.
+ *
+ */
+ private static final Object STATIC_INITIALIZER = ensureInitialized();
+
+ public static Object ensureInitialized() {
+ INSTANCE.ensureInitializedInternal();
+ return null;
+ }
+ }
+
+ private static class GeneratedPQuery extends BaseGeneratedEMFPQuery {
+ private static final ResourceRequirement.GeneratedPQuery INSTANCE = new GeneratedPQuery();
+
+ private final PParameter parameter_Host = new PParameter("Host", "hu.bme.mit.inf.dslreasoner.domains.cps.HostInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "HostInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_App = new PParameter("App", "hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ApplicationInstance")), PParameterDirection.INOUT);
+
+ private final PParameter parameter_Req = new PParameter("Req", "hu.bme.mit.inf.dslreasoner.domains.cps.ResourceRequirement", new EClassTransitiveInstancesKey((EClass)getClassifierLiteralSafe("http://www.example.org/cps", "ResourceRequirement")), PParameterDirection.INOUT);
+
+ private final List Original source:
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class AverageFreeHddMetric extends BaseGeneratedEMFQuerySpecification
+ * pattern averageFreeHddMetric(Average : java Double) {
+ * Average == avg find freeHddPercentage(_, #_);
+ * }
+ *
+ *
+ * @see Match
+ * @see AverageFreeHddMetric
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * pattern averageFreeHddMetric(Average : java Double) {
+ * Average == avg find freeHddPercentage(_, #_);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class AverageFreeMemoryMetric extends BaseGeneratedEMFQuerySpecification
+ * pattern averageFreeMemoryMetric(Average : java Double) {
+ * Average == avg find freeMemoryPercentage(_, #_);
+ * }
+ *
+ *
+ * @see Match
+ * @see AverageFreeMemoryMetric
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * pattern averageFreeMemoryMetric(Average : java Double) {
+ * Average == avg find freeMemoryPercentage(_, #_);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class CostMetric extends BaseGeneratedEMFQuerySpecification
+ * pattern costMetric(Cost : java Integer) {
+ * Cost == sum find cpsCost(_, #_);
+ * }
+ *
+ *
+ * @see Match
+ * @see CostMetric
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * pattern costMetric(Cost : java Integer) {
+ * Cost == sum find cpsCost(_, #_);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class CpsApplications extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "applications")
+ * pattern cpsApplications(Cps : CyberPhysicalSystem, AppInstance : ApplicationInstance) {
+ * CyberPhysicalSystem.applicationTypes.instances(Cps, AppInstance);
+ * }
+ *
+ *
+ * @see Match
+ * @see CpsApplications
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "applications")
+ * pattern cpsApplications(Cps : CyberPhysicalSystem, AppInstance : ApplicationInstance) {
+ * CyberPhysicalSystem.applicationTypes.instances(Cps, AppInstance);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class CpsCost extends BaseGeneratedEMFQuerySpecification
+ * pattern cpsCost(Cps : CyberPhysicalSystem, Cost : java Integer) {
+ * AppCount == count find cpsApplications(Cps, _);
+ * HostCost == sum find hostInstanceCost(Cps, _, #_);
+ * Cost == eval(5 AppCount + HostCost);
+ * }
+ *
+ *
+ * @see Match
+ * @see CpsCost
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * pattern cpsCost(Cps : CyberPhysicalSystem, Cost : java Integer) {
+ * AppCount == count find cpsApplications(Cps, _);
+ * HostCost == sum find hostInstanceCost(Cps, _, #_);
+ * Cost == eval(5 AppCount + HostCost);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class CpsHosts extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "hosts")
+ * pattern cpsHosts(Cps : CyberPhysicalSystem, HostInstance : HostInstance) {
+ * CyberPhysicalSystem.hostTypes.instances(Cps, HostInstance);
+ * }
+ *
+ *
+ * @see Match
+ * @see CpsHosts
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "hosts")
+ * pattern cpsHosts(Cps : CyberPhysicalSystem, HostInstance : HostInstance) {
+ * CyberPhysicalSystem.hostTypes.instances(Cps, HostInstance);
+ * }
+ *
+ *
+ *
+ * @see IQueryGroup
+ *
+ */
+@SuppressWarnings("all")
+public final class CpsQueries extends BaseGeneratedPatternGroup {
+ /**
+ * Access the pattern group.
+ *
+ * @return the singleton instance of the group
+ * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
+ *
+ */
+ public static CpsQueries instance() {
+ if (INSTANCE == null) {
+ INSTANCE = new CpsQueries();
+ }
+ return INSTANCE;
+ }
+
+ private static CpsQueries INSTANCE;
+
+ private CpsQueries() {
+ querySpecifications.add(CpsApplications.instance());
+ querySpecifications.add(CpsHosts.instance());
+ querySpecifications.add(TotalMemory.instance());
+ querySpecifications.add(TotalHdd.instance());
+ querySpecifications.add(AvailableMemory.instance());
+ querySpecifications.add(AvailableHdd.instance());
+ querySpecifications.add(AllocationWithoutResourceRequirement.instance());
+ querySpecifications.add(NotEnoughAvailableMemory.instance());
+ querySpecifications.add(NotEnoughAvailableHdd.instance());
+ querySpecifications.add(InstanceDoesNotSatisfyRequirement.instance());
+ querySpecifications.add(RequirementNotSatisfied.instance());
+ querySpecifications.add(AverageFreeMemoryMetric.instance());
+ querySpecifications.add(AverageFreeHddMetric.instance());
+ querySpecifications.add(CostMetric.instance());
+ querySpecifications.add(CpsCost.instance());
+ }
+
+ public CpsApplications getCpsApplications() {
+ return CpsApplications.instance();
+ }
+
+ public CpsApplications.Matcher getCpsApplications(final ViatraQueryEngine engine) {
+ return CpsApplications.Matcher.on(engine);
+ }
+
+ public CpsHosts getCpsHosts() {
+ return CpsHosts.instance();
+ }
+
+ public CpsHosts.Matcher getCpsHosts(final ViatraQueryEngine engine) {
+ return CpsHosts.Matcher.on(engine);
+ }
+
+ public TotalMemory getTotalMemory() {
+ return TotalMemory.instance();
+ }
+
+ public TotalMemory.Matcher getTotalMemory(final ViatraQueryEngine engine) {
+ return TotalMemory.Matcher.on(engine);
+ }
+
+ public TotalHdd getTotalHdd() {
+ return TotalHdd.instance();
+ }
+
+ public TotalHdd.Matcher getTotalHdd(final ViatraQueryEngine engine) {
+ return TotalHdd.Matcher.on(engine);
+ }
+
+ public AvailableMemory getAvailableMemory() {
+ return AvailableMemory.instance();
+ }
+
+ public AvailableMemory.Matcher getAvailableMemory(final ViatraQueryEngine engine) {
+ return AvailableMemory.Matcher.on(engine);
+ }
+
+ public AvailableHdd getAvailableHdd() {
+ return AvailableHdd.instance();
+ }
+
+ public AvailableHdd.Matcher getAvailableHdd(final ViatraQueryEngine engine) {
+ return AvailableHdd.Matcher.on(engine);
+ }
+
+ public AllocationWithoutResourceRequirement getAllocationWithoutResourceRequirement() {
+ return AllocationWithoutResourceRequirement.instance();
+ }
+
+ public AllocationWithoutResourceRequirement.Matcher getAllocationWithoutResourceRequirement(final ViatraQueryEngine engine) {
+ return AllocationWithoutResourceRequirement.Matcher.on(engine);
+ }
+
+ public NotEnoughAvailableMemory getNotEnoughAvailableMemory() {
+ return NotEnoughAvailableMemory.instance();
+ }
+
+ public NotEnoughAvailableMemory.Matcher getNotEnoughAvailableMemory(final ViatraQueryEngine engine) {
+ return NotEnoughAvailableMemory.Matcher.on(engine);
+ }
+
+ public NotEnoughAvailableHdd getNotEnoughAvailableHdd() {
+ return NotEnoughAvailableHdd.instance();
+ }
+
+ public NotEnoughAvailableHdd.Matcher getNotEnoughAvailableHdd(final ViatraQueryEngine engine) {
+ return NotEnoughAvailableHdd.Matcher.on(engine);
+ }
+
+ public InstanceDoesNotSatisfyRequirement getInstanceDoesNotSatisfyRequirement() {
+ return InstanceDoesNotSatisfyRequirement.instance();
+ }
+
+ public InstanceDoesNotSatisfyRequirement.Matcher getInstanceDoesNotSatisfyRequirement(final ViatraQueryEngine engine) {
+ return InstanceDoesNotSatisfyRequirement.Matcher.on(engine);
+ }
+
+ public RequirementNotSatisfied getRequirementNotSatisfied() {
+ return RequirementNotSatisfied.instance();
+ }
+
+ public RequirementNotSatisfied.Matcher getRequirementNotSatisfied(final ViatraQueryEngine engine) {
+ return RequirementNotSatisfied.Matcher.on(engine);
+ }
+
+ public AverageFreeMemoryMetric getAverageFreeMemoryMetric() {
+ return AverageFreeMemoryMetric.instance();
+ }
+
+ public AverageFreeMemoryMetric.Matcher getAverageFreeMemoryMetric(final ViatraQueryEngine engine) {
+ return AverageFreeMemoryMetric.Matcher.on(engine);
+ }
+
+ public AverageFreeHddMetric getAverageFreeHddMetric() {
+ return AverageFreeHddMetric.instance();
+ }
+
+ public AverageFreeHddMetric.Matcher getAverageFreeHddMetric(final ViatraQueryEngine engine) {
+ return AverageFreeHddMetric.Matcher.on(engine);
+ }
+
+ public CostMetric getCostMetric() {
+ return CostMetric.instance();
+ }
+
+ public CostMetric.Matcher getCostMetric(final ViatraQueryEngine engine) {
+ return CostMetric.Matcher.on(engine);
+ }
+
+ public CpsCost getCpsCost() {
+ return CpsCost.instance();
+ }
+
+ public CpsCost.Matcher getCpsCost(final ViatraQueryEngine engine) {
+ return CpsCost.Matcher.on(engine);
+ }
+}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/InstanceDoesNotSatisfyRequirement.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/InstanceDoesNotSatisfyRequirement.java
new file mode 100644
index 00000000..14deb337
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/InstanceDoesNotSatisfyRequirement.java
@@ -0,0 +1,716 @@
+/**
+ * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/queries/CpsQueries.vql
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.queries;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.ApplicationInstance;
+import hu.bme.mit.inf.dslreasoner.domains.cps.Requirement;
+import hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.SatisfyingInstance;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
+import java.util.function.Consumer;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.log4j.Logger;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.viatra.query.runtime.api.IPatternMatch;
+import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
+import org.eclipse.viatra.query.runtime.api.ViatraQueryEngine;
+import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
+import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecification;
+import org.eclipse.viatra.query.runtime.api.impl.BaseMatcher;
+import org.eclipse.viatra.query.runtime.api.impl.BasePatternMatch;
+import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
+import org.eclipse.viatra.query.runtime.emf.types.EStructuralFeatureInstancesKey;
+import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
+import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
+import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
+import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.PAnnotation;
+import org.eclipse.viatra.query.runtime.matchers.psystem.annotations.ParameterReference;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.NegativePatternCall;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
+import org.eclipse.viatra.query.runtime.matchers.tuple.Tuple;
+import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
+import org.eclipse.viatra.query.runtime.util.ViatraQueryLoggingUtil;
+
+/**
+ * A pattern-specific query specification that can instantiate Matcher in a type-safe way.
+ *
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class InstanceDoesNotSatisfyRequirement extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}Constraint(severity = "error", key = {Req, App},
+ * message = "Requirement must be satisfied by the required application type.")
+ * pattern instanceDoesNotSatisfyRequirement(Req : Requirement, App : ApplicationInstance) {
+ * Requirement.instances(Req, App);
+ * neg find satisfyingInstance(Req, App);
+ * }
+ *
+ *
+ * @see Match
+ * @see InstanceDoesNotSatisfyRequirement
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}Constraint(severity = "error", key = {Req, App},
+ * message = "Requirement must be satisfied by the required application type.")
+ * pattern instanceDoesNotSatisfyRequirement(Req : Requirement, App : ApplicationInstance) {
+ * Requirement.instances(Req, App);
+ * neg find satisfyingInstance(Req, App);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class NotEnoughAvailableHdd extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}Constraint(severity = "error", key = {Host},
+ * message = "Insufficient HDD available on host.")
+ * pattern notEnoughAvailableHdd(Host : HostInstance) {
+ * find availableHdd(Host, Hdd);
+ * check(Hdd {@literal <} 0);
+ * }
+ *
+ *
+ * @see Match
+ * @see NotEnoughAvailableHdd
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}Constraint(severity = "error", key = {Host},
+ * message = "Insufficient HDD available on host.")
+ * pattern notEnoughAvailableHdd(Host : HostInstance) {
+ * find availableHdd(Host, Hdd);
+ * check(Hdd {@literal <} 0);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class NotEnoughAvailableMemory extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}Constraint(severity = "error", key = {Host},
+ * message = "Insufficient memory available on host.")
+ * pattern notEnoughAvailableMemory(Host : HostInstance) {
+ * find availableMemory(Host, Memory);
+ * check(Memory {@literal <} 0);
+ * }
+ *
+ *
+ * @see Match
+ * @see NotEnoughAvailableMemory
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}Constraint(severity = "error", key = {Host},
+ * message = "Insufficient memory available on host.")
+ * pattern notEnoughAvailableMemory(Host : HostInstance) {
+ * find availableMemory(Host, Memory);
+ * check(Memory {@literal <} 0);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class RequirementNotSatisfied extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}Constraint(severity = "error", key = {Req},
+ * message = "Requirement is not satisfied by enough application instances.")
+ * pattern requirementNotSatisfied(Req : Requirement) {
+ * Instances == count find satisfyingInstance(Req, _);
+ * Requirement.count(Req, RequiredCount);
+ * check(Instances {@literal <} RequiredCount);
+ * }
+ *
+ *
+ * @see Match
+ * @see RequirementNotSatisfied
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}Constraint(severity = "error", key = {Req},
+ * message = "Requirement is not satisfied by enough application instances.")
+ * pattern requirementNotSatisfied(Req : Requirement) {
+ * Instances == count find satisfyingInstance(Req, _);
+ * Requirement.count(Req, RequiredCount);
+ * check(Instances {@literal <} RequiredCount);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class TotalHdd extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "totalHdd")
+ * pattern totalHdd(Host : HostInstance, Hdd : EInt) {
+ * HostInstance.type.defaultHdd(Host, Hdd);
+ * }
+ *
+ *
+ * @see Match
+ * @see TotalHdd
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "totalHdd")
+ * pattern totalHdd(Host : HostInstance, Hdd : EInt) {
+ * HostInstance.type.defaultHdd(Host, Hdd);
+ * }
+ *
+ *
+ * @see Matcher
+ * @see Match
+ *
+ */
+@SuppressWarnings("all")
+public final class TotalMemory extends BaseGeneratedEMFQuerySpecification
+ * {@literal @}QueryBasedFeature(feature = "totalMemory")
+ * pattern totalMemory(Host : HostInstance, Memory : EInt) {
+ * HostInstance.type.defaultMemory(Host, Memory);
+ * }
+ *
+ *
+ * @see Match
+ * @see TotalMemory
+ *
+ */
+ public static class Matcher extends BaseMatcher
+ * {@literal @}QueryBasedFeature(feature = "totalMemory")
+ * pattern totalMemory(Host : HostInstance, Memory : EInt) {
+ * HostInstance.type.defaultMemory(Host, Memory);
+ * }
+ *
+ *
+ *
+ * @see IQueryGroup
+ *
+ */
+@SuppressWarnings("all")
+public final class CpsQueriesAll extends BaseGeneratedPatternGroup {
+ /**
+ * Access the pattern group.
+ *
+ * @return the singleton instance of the group
+ * @throws ViatraQueryRuntimeException if there was an error loading the generated code of pattern specifications
+ *
+ */
+ public static CpsQueriesAll instance() {
+ if (INSTANCE == null) {
+ INSTANCE = new CpsQueriesAll();
+ }
+ return INSTANCE;
+ }
+
+ private static CpsQueriesAll INSTANCE;
+
+ private CpsQueriesAll() {
+ querySpecifications.add(CpsApplications.instance());
+ querySpecifications.add(CpsHosts.instance());
+ querySpecifications.add(TotalMemory.instance());
+ querySpecifications.add(TotalHdd.instance());
+ querySpecifications.add(AvailableMemory.instance());
+ querySpecifications.add(MemoryRequirement.instance());
+ querySpecifications.add(AvailableHdd.instance());
+ querySpecifications.add(HddRequirement.instance());
+ querySpecifications.add(ResourceRequirement.instance());
+ querySpecifications.add(AllocationWithoutResourceRequirement.instance());
+ querySpecifications.add(NotEnoughAvailableMemory.instance());
+ querySpecifications.add(NotEnoughAvailableHdd.instance());
+ querySpecifications.add(InstanceDoesNotSatisfyRequirement.instance());
+ querySpecifications.add(SatisfyingInstance.instance());
+ querySpecifications.add(RequirementNotSatisfied.instance());
+ querySpecifications.add(AverageFreeMemoryMetric.instance());
+ querySpecifications.add(FreeMemoryPercentage.instance());
+ querySpecifications.add(AverageFreeHddMetric.instance());
+ querySpecifications.add(FreeHddPercentage.instance());
+ querySpecifications.add(CostMetric.instance());
+ querySpecifications.add(CpsCost.instance());
+ querySpecifications.add(HostInstanceCost.instance());
+ }
+}
diff --git a/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeHddPercentage.java b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeHddPercentage.java
new file mode 100644
index 00000000..366677b5
--- /dev/null
+++ b/Domains/hu.bme.mit.inf.dslreasoner.domains.cps/src-gen/hu/bme/mit/inf/dslreasoner/domains/cps/queries/internal/FreeHddPercentage.java
@@ -0,0 +1,172 @@
+/**
+ * Generated from platform:/resource/hu.bme.mit.inf.dslreasoner.domains.cps/src/hu/bme/mit/inf/dslreasoner/domains/cps/queries/CpsQueries.vql
+ */
+package hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal;
+
+import hu.bme.mit.inf.dslreasoner.domains.cps.queries.AvailableHdd;
+import hu.bme.mit.inf.dslreasoner.domains.cps.queries.TotalHdd;
+import java.util.Arrays;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Set;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFPQuery;
+import org.eclipse.viatra.query.runtime.api.impl.BaseGeneratedEMFQuerySpecificationWithGenericMatcher;
+import org.eclipse.viatra.query.runtime.emf.types.EClassTransitiveInstancesKey;
+import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
+import org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey;
+import org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator;
+import org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider;
+import org.eclipse.viatra.query.runtime.matchers.psystem.PBody;
+import org.eclipse.viatra.query.runtime.matchers.psystem.PVariable;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.TypeFilterConstraint;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall;
+import org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameterDirection;
+import org.eclipse.viatra.query.runtime.matchers.psystem.queries.PVisibility;
+import org.eclipse.viatra.query.runtime.matchers.tuple.Tuples;
+
+/**
+ * A pattern-specific query specification that can instantiate GenericPatternMatcher in a type-safe way.
+ *
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class FreeHddPercentage extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private FreeHddPercentage() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static FreeHddPercentage instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.FreeHddPercentage (visibility: PUBLIC, simpleName: FreeHddPercentage, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.FreeHddPercentage, deprecated:
+ * private pattern freeHddPercentage(Host : HostInstance, Free : java Double) {
+ * find totalHdd(Host, Total);
+ * find availableHdd(Host, Available);
+ * Free == eval((Available as double) / Total);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class FreeMemoryPercentage extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private FreeMemoryPercentage() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static FreeMemoryPercentage instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.FreeMemoryPercentage (visibility: PUBLIC, simpleName: FreeMemoryPercentage, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.FreeMemoryPercentage, deprecated:
+ * private pattern freeMemoryPercentage(Host : HostInstance, Free : java Double) {
+ * find totalMemory(Host, Total);
+ * find availableMemory(Host, Available);
+ * Free == eval((Available as double) / Total);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class HddRequirement extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private HddRequirement() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static HddRequirement instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.HddRequirement (visibility: PUBLIC, simpleName: HddRequirement, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.HddRequirement, deprecated:
+ * private pattern hddRequirement(Host : HostInstance, App : ApplicationInstance, Hdd : EInt) {
+ * find resourceRequirement(Host, App, Req);
+ * ResourceRequirement.requiredHdd(Req, Hdd);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class HostInstanceCost extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private HostInstanceCost() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static HostInstanceCost instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.HostInstanceCost (visibility: PUBLIC, simpleName: HostInstanceCost, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.HostInstanceCost, deprecated:
+ * private pattern hostInstanceCost(Cps : CyberPhysicalSystem, Host : HostInstance, Cost : EInt) {
+ * find cpsHosts(Cps, Host);
+ * HostInstance.type.cost(Host, Cost);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class MemoryRequirement extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private MemoryRequirement() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static MemoryRequirement instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.MemoryRequirement (visibility: PUBLIC, simpleName: MemoryRequirement, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.MemoryRequirement, deprecated:
+ * private pattern memoryRequirement(Host : HostInstance, App : ApplicationInstance, Memory : EInt) {
+ * find resourceRequirement(Host, App, Req);
+ * ResourceRequirement.requiredMemory(Req, Memory);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class ResourceRequirement extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private ResourceRequirement() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static ResourceRequirement instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.ResourceRequirement (visibility: PUBLIC, simpleName: ResourceRequirement, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.ResourceRequirement, deprecated:
+ * private pattern resourceRequirement(Host : HostInstance, App : ApplicationInstance, Req : ResourceRequirement) {
+ * ApplicationInstance.allocatedTo(App, Host);
+ * ApplicationInstance.type.requirements(App, Req);
+ * HostInstance.type(Host, HostType);
+ * ResourceRequirement.hostType(Req, HostType);
+ * }
+ *
+ *
+ * @see GenericPatternMatcher
+ * @see GenericPatternMatch
+ *
+ */
+@SuppressWarnings("all")
+public final class SatisfyingInstance extends BaseGeneratedEMFQuerySpecificationWithGenericMatcher {
+ private SatisfyingInstance() {
+ super(GeneratedPQuery.INSTANCE);
+ }
+
+ /**
+ * @return the singleton instance of the query specification
+ * @throws ViatraQueryRuntimeException if the pattern definition could not be loaded
+ *
+ */
+ public static SatisfyingInstance instance() {
+ try{
+ return LazyHolder.INSTANCE;
+ } catch (ExceptionInInitializerError err) {
+ throw processInitializerError(err);
+ }
+ }
+
+ /**
+ * Inner class allowing the singleton instance of {@link JvmGenericType: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.SatisfyingInstance (visibility: PUBLIC, simpleName: SatisfyingInstance, identifier: hu.bme.mit.inf.dslreasoner.domains.cps.queries.internal.SatisfyingInstance, deprecated:
+ * private pattern satisfyingInstance(Req : Requirement, App : ApplicationInstance) {
+ * Requirement.instances(Req, App);
+ * Requirement.type(Req, Type);
+ * ApplicationInstance.type(App, Type);
+ * }
+ *