Class 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.
    • Constructor Detail

      • PcmAction

        public PcmAction()
    • 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)