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
     
  • Method Summary

    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.
    action(org.palladiosimulator.pcm.seff.AbstractAction action)
     
    actions(org.palladiosimulator.pcm.seff.AbstractAction action)
    Follows the action path and calls "action" for each action in it.
    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.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • PcmAction

      public PcmAction()
  • Method Details

    • 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)