Package org.palladiosimulator.pcm.seff
Interface ServiceEffectSpecification
- All Superinterfaces:
org.eclipse.emf.cdo.CDOObject
,org.eclipse.emf.cdo.common.id.CDOWithID
,EObject
,Notifier
- All Known Subinterfaces:
ResourceDemandingSEFF
- All Known Implementing Classes:
ResourceDemandingSEFFImpl
,ServiceEffectSpecificationImpl
public interface ServiceEffectSpecification
extends org.eclipse.emf.cdo.CDOObject
A representation of the model object 'Service Effect Specification'.
Service Effect Specification Models the effect of invoking a specific service of a basic component. Therefore, it references a Signature from an Interface, for which the component takes a ProvidedRole, to identify the described service. This class is abstract and SEFFs for specific analysis purposes need to inherit from this class. A BasicComponent may have an arbitrary number of SEFFs. It can have multiple SEFFs of a different type for a single provided service. For example, one SEFF can express all external service calls with no particular order, while another one includes a restricted order, or still another one expresses resource demands of the service.
While different SEFF types have been proposed, the only type currently included in the meta-model is the ResourceDemandingSEFF for performance prediction. Different types of SEFFs should not contradict each other if the languages are equally powerful. For example, the order of allowed external service calls should be the same for each SEFF type modelling sequences of such calls if the modelling languages have the same expressiveness. SEFFs are part of a component and not part of an interface, because they are implementation dependent. The SEFFs of a CompositeComponent are not represented in the meta-model and can be derived automatically by connecting the SEFFs of the encapsulated components of its nested AssemblyContexts. Different SEFFs of a single component access the same component parameter specifications. That means that parameter dependencies to the same component parameters in different SEFF types refer also to the same characterisations.
The following features are supported:
- See Also:
- Generated class or method.
- EMF model class or method.
- abstract="true" annotation="http://www.eclipse.org/emf/2002/Ecore constraints='referencedOperationSignatureMustBelongToInterfaceReferencedByProvidedRole referencedEventTypeMustBelongToEventGroupReferencedByProvidedRole'" annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/LPG referencedOperationSignatureMustBelongToInterfaceReferencedByProvidedRole='let describedService : repository::Signature = self.describedService__SEFF in\n not describedService.oclIsKindOf(repository::OperationSignature) or\n let providedRoles : Set(repository::ProvidedRole) = self.basicComponent_ServiceEffectSpecification.providedRoles_InterfaceProvidingEntity in\n -- collect all directly provided interfaces\n let directlyProvidedInterfaces : Set(repository::Interface) = providedRoles->selectByKind(repository::OperationProvidedRole).providedInterface__OperationProvidedRole->selectByKind(repository::Interface)->asSet() in\n -- collect all provided interfaces including parent interfaces\n let providedInterfaces : Set(repository::Interface) = directlyProvidedInterfaces->closure(interface : repository::Interface | interface.parentInterfaces__Interface)->union(directlyProvidedInterfaces) in\n -- collect all provided signatures\n let providedSignatures : Set(repository::Signature) = providedInterfaces->selectByKind(repository::OperationInterface).signatures__OperationInterface->selectByKind(repository::Signature)->asSet() in\n -- compare signatures\n providedSignatures->includes(self.describedService__SEFF)' referencedEventTypeMustBelongToEventGroupReferencedByProvidedRole='let describedService : pcm::repository::Signature = self.describedService__SEFF in\n not describedService.oclIsKindOf(pcm::repository::EventType) or\n let providedRoles : Set(pcm::repository::ProvidedRole) = self.basicComponent_ServiceEffectSpecification.providedRoles_InterfaceProvidingEntity in\n -- collect all directly provided interfaces\n let directlyProvidedInterfaces : Set(pcm::repository::Interface) = providedRoles->selectByKind(pcm::repository::SinkRole).eventGroup__SinkRole->selectByKind(pcm::repository::Interface)->asSet() in\n -- collect all provided interfaces including parent interfaces\n let providedInterfaces : Set(pcm::repository::Interface) = directlyProvidedInterfaces->closure(interface : pcm::repository::Interface | interface.parentInterfaces__Interface)->union(directlyProvidedInterfaces) in\n -- collect all provided signatures\n let providedSignatures : Set(pcm::repository::Signature) = providedInterfaces->selectByKind(pcm::repository::EventGroup).eventTypes__EventGroup->selectByKind(pcm::repository::Signature)->asSet() in\n -- compare signatures\n providedSignatures->includes(self.describedService__SEFF)'"
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns the value of the 'Basic Component Service Effect Specification' container reference.Returns the value of the 'Described Service SEFF' reference.Returns the value of the 'Seff Type ID' attribute.void
Sets the value of the 'Basic Component Service Effect Specification
' container reference.void
Sets the value of the 'Described Service SEFF
' reference.void
setSeffTypeID
(String value) Sets the value of the 'Seff Type ID
' attribute.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 org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
-
Field Details
-
copyright
- See Also:
- Generated class or method.
-
-
Method Details
-
getSeffTypeID
String getSeffTypeID()Returns the value of the 'Seff Type ID' attribute. The default value is"1"
.- Returns:
- the value of the 'Seff Type ID' attribute.
- See Also:
- Generated class or method.
- EMF model class or method.
- default="1" required="true" ordered="false"
-
setSeffTypeID
Sets the value of the 'Seff Type ID
' attribute.- Parameters:
value
- the new value of the 'Seff Type ID' attribute.- See Also:
- Generated class or method.
-
getDescribedService__SEFF
Signature getDescribedService__SEFF()Returns the value of the 'Described Service SEFF' reference.- Returns:
- the value of the 'Described Service SEFF' reference.
- See Also:
- Generated class or method.
- EMF model class or method.
- required="true" ordered="false"
-
setDescribedService__SEFF
Sets the value of the 'Described Service SEFF
' reference.- Parameters:
value
- the new value of the 'Described Service SEFF' reference.- See Also:
- Generated class or method.
-
getBasicComponent_ServiceEffectSpecification
BasicComponent getBasicComponent_ServiceEffectSpecification()Returns the value of the 'Basic Component Service Effect Specification' container reference. It is bidirectional and its opposite is 'Service Effect Specifications Basic Component
'.- Returns:
- the value of the 'Basic Component Service Effect Specification' container reference.
- See Also:
- Generated class or method.
- EMF model class or method.
- opposite="serviceEffectSpecifications__BasicComponent" required="true" transient="false" ordered="false"
-
setBasicComponent_ServiceEffectSpecification
Sets the value of the 'Basic Component Service Effect Specification
' container reference.- Parameters:
value
- the new value of the 'Basic Component Service Effect Specification' container reference.- See Also:
- Generated class or method.
-