Class PcmAction
- java.lang.Object
-
- org.palladiosimulator.protocom.lang.java.util.PcmAction
-
- Direct Known Subclasses:
PcmProtoAction
,PcmStubAction
public abstract class PcmAction extends Object
Abstract class for implementing PCM actions, i.e., the behavior of components as specified via SEFFs. Refinements of this class could, for instance, add simulate stack frames for performance prototypes or provide code stub generation.
-
-
Constructor Summary
Constructors Constructor Description PcmAction()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
_action(org.palladiosimulator.pcm.seff.AcquireAction action)
AcquireAction is mapped to the acquire method of Java Collection's semaphore implementation.protected String
_action(org.palladiosimulator.pcm.seff.BranchAction action)
BranchAction is implemented as an IF condition.protected String
_action(org.palladiosimulator.pcm.seff.CollectionIteratorAction action)
No idea.protected String
_action(org.palladiosimulator.pcm.seff.EmitEventAction action)
TODO Think about EmitEventAction.protected String
_action(org.palladiosimulator.pcm.seff.ExternalCallAction action)
ExternalCallAction calls a remote service.protected String
_action(org.palladiosimulator.pcm.seff.ForkAction action)
A ForkAction spawns a new thread for each defined behavior.protected String
_action(org.palladiosimulator.pcm.seff.InternalAction action)
InteralAction uses a load generator to simulate CPU/HDD usage.protected String
_action(org.palladiosimulator.pcm.seff.LoopAction action)
LoopAction is transformed into a simple FOR statement.protected String
_action(org.palladiosimulator.pcm.seff.ReleaseAction action)
ReleaseAction is mapped to the release method of Java Collection's semaphore implementation.protected String
_action(org.palladiosimulator.pcm.seff.SetVariableAction action)
protected String
_action(org.palladiosimulator.pcm.seff.StartAction action)
StartAction.protected String
_action(org.palladiosimulator.pcm.seff.StopAction action)
StopAction.protected CharSequence
_branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.GuardedBranchTransition transition)
Branch transition for GuardedBranchTransition.protected CharSequence
_branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.ProbabilisticBranchTransition transition)
Branch transition for ProbabilisticBranchTransition entities.String
action(org.palladiosimulator.pcm.seff.AbstractAction action)
String
actions(org.palladiosimulator.pcm.seff.AbstractAction action)
Follows the action path and calls "action" for each action in it.CharSequence
branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.AbstractBranchTransition transition)
static org.palladiosimulator.pcm.seff.StartAction
findStart(Iterable<org.palladiosimulator.pcm.seff.AbstractAction> actions)
Helper method to find the first StartAction in a list of actions.
-
-
-
Method Detail
-
actions
public String actions(org.palladiosimulator.pcm.seff.AbstractAction action)
Follows the action path and calls "action" for each action in it. Note that actions do not branch! Branching is solved by a BranchAction, therefore at most one successor is given at any time.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.StartAction action)
StartAction. Should be empty, I guess.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.StopAction action)
StopAction. Nothing to see here either.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.CollectionIteratorAction action)
No idea. We didn't implement this for the last ProtoCom either. FIXME Implement this as it is a crucial part of the bahavior (lehrig)
-
_action
protected String _action(org.palladiosimulator.pcm.seff.LoopAction action)
LoopAction is transformed into a simple FOR statement.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.ExternalCallAction action)
ExternalCallAction calls a remote service.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.InternalAction action)
InteralAction uses a load generator to simulate CPU/HDD usage. Note that ProtoCom does NOT use InfrastructureCalls from the PCM model, because these should be reflected by the underlying middleware and OS!
-
_action
protected String _action(org.palladiosimulator.pcm.seff.BranchAction action)
BranchAction is implemented as an IF condition. A BranchAction may have two different transition types: ProbabilisticBranchTransition and GuardedBranchTransition.
-
_branchTransition
protected CharSequence _branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.ProbabilisticBranchTransition transition)
Branch transition for ProbabilisticBranchTransition entities.
-
_branchTransition
protected CharSequence _branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.GuardedBranchTransition transition)
Branch transition for GuardedBranchTransition.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.AcquireAction action)
AcquireAction is mapped to the acquire method of Java Collection's semaphore implementation.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.ReleaseAction action)
ReleaseAction is mapped to the release method of Java Collection's semaphore implementation.
-
_action
protected String _action(org.palladiosimulator.pcm.seff.SetVariableAction action)
-
_action
protected String _action(org.palladiosimulator.pcm.seff.ForkAction action)
A ForkAction spawns a new thread for each defined behavior. These should be processed asynchronously in parallel. Please note that manually spawning new threads is discouraged on certain middlewares (like JavaEE)!
-
_action
protected String _action(org.palladiosimulator.pcm.seff.EmitEventAction action)
TODO Think about EmitEventAction. JMS?
-
findStart
public static org.palladiosimulator.pcm.seff.StartAction findStart(Iterable<org.palladiosimulator.pcm.seff.AbstractAction> actions)
Helper method to find the first StartAction in a list of actions.
-
action
public String action(org.palladiosimulator.pcm.seff.AbstractAction action)
-
branchTransition
public CharSequence branchTransition(org.palladiosimulator.pcm.seff.BranchAction action, org.palladiosimulator.pcm.seff.AbstractBranchTransition transition)
-
-