Interface Allocation

    • Method Detail

      • setSystem_Allocation

        void setSystem_Allocation​(System value)
        Sets the value of the 'System Allocation' reference.
        Parameters:
        value - the new value of the 'System Allocation' reference.
        See Also:
        getSystem_Allocation()
        Generated class or method.
      • EachAssemblyContextWithinSystemHasToBeAllocatedExactlyOnce

        boolean EachAssemblyContextWithinSystemHasToBeAllocatedExactlyOnce​(DiagnosticChain diagnostics,
                                                                           Map<Object,​Object> context)
        Each Assembly of BasicComponents and CompositeComponents used in the referenced System must be allocated. Things are complicated by the introduction of SubSystems. Here, the Assembly of the SubSystem itself does not have to be allocated. If it is not allocated, all BasicComponents and CompositeComponents contained in this SubSystem (also transitively over several nested and not-allocated SubSystems) need to be allocated. The constraint is realised wth a closure over the AssemblyContext contained in a ComposedStructure.
        Parameters:
        diagnostics - The chain of diagnostics to which problems are to be appended.
        context - The cache of context-specific information.
        Generated class or method.
        EMF model class or method.
        annotation= "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot body='-- Get all AssemblyContexts used by this system, that is \n-- 1) the AssemblyContexts directly used in the system and \nself.system_Allocation.assemblyContexts__ComposedStructure\n-- 2) the AssemblyContexts used by SubSystems in the System. Note that if a SubSystem also contains other Subsystems,\n-- we need to get those AssemblyContexts too: Thus, we use a closure here\n->union(self.system_Allocation.assemblyContexts__ComposedStructure->closure(\nencapsulatedComponent__AssemblyContext->select(composites|composites.oclIsTypeOf(pcm::subsystem::SubSystem)).oclAsType(pcm::subsystem::SubSystem)\n.assemblyContexts__ComposedStructure))\n--Now, after we collected all AssemblyContexts somehow used, we check whether they need to be allocated \n--and if yes, if they are allocated.\n->forAll(assemblyCtx|\n--AssemblyContexts that contain SubSystems do not need to be allocated\nassemblyCtx.encapsulatedComponent__AssemblyContext.oclIsTypeOf(pcm::subsystem::SubSystem) or\n--All others need to be allocated. \nself.allocationContexts_Allocation->select(allocationCtx|\nallocationCtx.assemblyContext_AllocationContext = assemblyCtx)->size() = 1)'"
      • CommunicatingServersHaveToBeConnectedByLinkingResource

        boolean CommunicatingServersHaveToBeConnectedByLinkingResource​(DiagnosticChain diagnostics,
                                                                       Map<Object,​Object> context)
        Parameters:
        diagnostics - The chain of diagnostics to which problems are to be appended.
        context - The cache of context-specific information.
        Generated class or method.
        EMF model class or method.
        annotation= "http://www.eclipse.org/uml2/1.1.0/GenModel body='self.allocationContexts_Allocation->forAll(a | self.allocationContexts_Allocation->forAll(b | \r\n --- if a and b are not on the same server\r\n (a.resourceContainer_AllocationContext <> b.resourceContainer_AllocationContext \r\n and\r\n -- and if the assembly contexts of a and b are connected\r\n self.system_Allocation.connectors__ComposedStructure->select(conn | conn.oclIsTypeOf(pcm::core::composition::AssemblyConnector)).oclAsType(pcm::core::composition::AssemblyConnector)->exists(conn | \r\n (conn.providingAssemblyContext_AssemblyConnector = a.assemblyContext_AllocationContext \r\n and \r\n conn.requiringAssemblyContext_AssemblyConnector = b.assemblyContext_AllocationContext )\r\n or \r\n (conn.providingAssemblyContext_AssemblyConnector = b.assemblyContext_AllocationContext \r\n and \r\n conn.requiringAssemblyContext_AssemblyConnector = a.assemblyContext_AllocationContext )\r\n )\r\n )\r\n -- then the servers have to be connected by a linking resource\r\n implies \r\n self.targetResourceEnvironment_Allocation.linkingResources__ResourceEnvironment->exists(l | \r\n -- l connects the two\r\n l.connectedResourceContainers_LinkingResource->includes(a.resourceContainer_AllocationContext)\r\n and \r\n l.connectedResourceContainers_LinkingResource->includes(b.resourceContainer_AllocationContext)\r\n )\r\n ))'"