Interface CompleteComponentType
- All Superinterfaces:
org.eclipse.emf.cdo.CDOObject
,org.eclipse.emf.cdo.common.id.CDOWithID
,Entity
,EObject
,de.uka.ipd.sdq.identifier.Identifier
,InterfaceProvidingEntity
,InterfaceProvidingRequiringEntity
,InterfaceRequiringEntity
,NamedElement
,Notifier
,PCMBaseClass
,PCMClass
,RepositoryComponent
,ResourceInterfaceRequiringEntity
- All Known Implementing Classes:
CompleteComponentTypeImpl
A representation of the model object 'Complete Component Type'.
Complete (Component) types abstract from the realisation of components. They only contain provided and required roles omitting the components’ internal structure, i.e., the service effect specifications or assemblies. Thus, complete types represent a black box view on components. Leaving the implementation open allows for a higher flexibility of software architects and defines substitutability in the PCM.
The following features are supported:
- See Also:
- Generated class or method.
- EMF model class or method.
- annotation="http://www.eclipse.org/emf/2002/Ecore constraints='atLeastOneInterfaceHasToBeProvidedOrRequiredByAUsefullCompleteComponentType providedInterfacesHaveToConformToProvidedType2'" annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG atLeastOneInterfaceHasToBeProvidedOrRequiredByAUsefullCompleteComponentType='(\r\n\tself.oclIsTypeOf(CompleteComponentType)\r\n\tor\r\n\tself.oclIsTypeOf(ImplementationComponentType)\r\n\tor\r\n\tself.oclIsTypeOf(CompositeComponent)\r\n\tor\r\n\tself.oclIsTypeOf(BasicComponent)\r\n)\r\nimplies\r\n(\r\n\tself.providedRoles_InterfaceProvidingEntity->size() >= 1\r\n\tor\r\n\tself.requiredRoles_InterfaceRequiringEntity->size() >= 1\r\n)' providedInterfacesHaveToConformToProvidedType2='-- CompleteTypes provided Interfaces have to be a superset\r\n-- of ProvidesComponentType provided Interfaces #\r\n--\r\n-- ACCx are used to accumulate Sets/Bags; usually only the very inner ACCx is used at all.\r\n--\r\n-- Recursive Query for parent Interface IDs\r\n-- see \"lpar2005.pdf\" (Second-order principles in specification languages for Object-Oriented Programs; Beckert, Tretelman) pp. 11 #\r\n--let parentInterfaces : Bag(Interface) =\r\n--\tself.providedRoles->iterate(r : ProvidedRole; acc2 : Bag(Interface) = Bag{} |\r\n--\t\tacc2->union(r.providedInterface.parentInterface->asBag()) -- asBag required to allow Set operations #\r\n--\t) in\r\n--let anchestorInterfaces : Bag(Interface) =\r\n--\tself.providedRoles->iterate(r : ProvidedRole; acc4 : Bag(Interface) = Bag{} |\r\n--\t\tacc4->union(r.providedInterface.parentInterface->asBag()) -- asBag required to allow Set operations #\r\n--\t)->union( -- union with anchestors found in former recursion #\r\n--\t\tself.providedRoles->iterate(r : ProvidedRole; acc6 : Bag(Interface) = Bag{} |\r\n--\t\t\tacc6->union(r.providedInterface.parentInterface.anchestorInterfaces) --already Set/Bag\r\n--\t\t)\r\n--\t) in\r\n--\t-- Directly provided anchestorInterfaces need to be a superset of provided interfaces of Supertype #\r\n--\tanchestorInterfaces.identifier.id->includesAll(\r\n--\t\tself.parentProvidesComponentTypes->iterate(pt : ProvidesComponentType; acc1 : Bag(String) = Bag{} |\r\n--\t\t\tpt.providedRoles->iterate(r : ProvidedRole; acc2 : Bag(String) = Bag{} |\r\n--\t\t\t\tacc2->union(r.providedInterface.identifier.id->asBag()) -- asBag required to allow Set operations #\r\n--\t\t\t)\r\n--\t\t)\r\n--\t)\r\ntrue'"
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the value of the 'Parent Provides Component Types' reference list.Methods inherited from interface org.eclipse.emf.cdo.CDOObject
cdoConflict, cdoDirectResource, cdoHistory, cdoID, cdoInvalid, cdoLockState, cdoPermission, cdoPrefetch, cdoReadLock, cdoReload, cdoResource, cdoRevision, cdoRevision, cdoState, cdoView, cdoWriteLock, cdoWriteOption
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
Methods inherited from interface de.uka.ipd.sdq.identifier.Identifier
getId, setId
Methods inherited from interface org.palladiosimulator.pcm.core.entity.InterfaceProvidingEntity
getProvidedRoles_InterfaceProvidingEntity
Methods inherited from interface org.palladiosimulator.pcm.core.entity.InterfaceRequiringEntity
getRequiredRoles_InterfaceRequiringEntity
Methods inherited from interface org.palladiosimulator.pcm.core.entity.NamedElement
getEntityName, setEntityName
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
Methods inherited from interface org.palladiosimulator.pcm.repository.RepositoryComponent
getRepository__RepositoryComponent, setRepository__RepositoryComponent
Methods inherited from interface org.palladiosimulator.pcm.core.entity.ResourceInterfaceRequiringEntity
getResourceRequiredRoles__ResourceInterfaceRequiringEntity
-
Field Details
-
copyright
- See Also:
- Generated class or method.
-
-
Method Details
-
getParentProvidesComponentTypes
EList<ProvidesComponentType> getParentProvidesComponentTypes()Returns the value of the 'Parent Provides Component Types' reference list. The list contents are of typeProvidesComponentType
.- Returns:
- the value of the 'Parent Provides Component Types' reference list.
- See Also:
- Generated class or method.
- EMF model class or method.
- ordered="false"
-