Class ConditionalAction

java.lang.Object
neqsim.process.logic.action.ConditionalAction
All Implemented Interfaces:
LogicAction

public class ConditionalAction extends Object implements LogicAction
Executes an action conditionally based on a runtime condition.

Conditional actions provide if-then-else logic within process sequences:

  • If condition is true, execute primary action
  • If condition is false, execute alternative action (optional)
  • Enables dynamic decision-making in sequences

Example usage:

// If temperature > 100°C, open cooling valve; else open bypass valve
LogicCondition highTemp = new TemperatureCondition(reactor, 100.0, ">");
LogicAction openCooling = new OpenValveAction(coolingValve);
LogicAction openBypass = new OpenValveAction(bypassValve);

ConditionalAction conditional =
    new ConditionalAction(highTemp, openCooling, openBypass, "Temperature Control");

// In sequence
startupLogic.addAction(conditional, 0.0);

// Execute - checks condition at runtime
conditional.execute(); // Opens appropriate valve based on current temperature
Version:
1.0
Author:
ESOL
  • Field Details

    • condition

      private final LogicCondition condition
    • primaryAction

      private final LogicAction primaryAction
    • alternativeAction

      private final LogicAction alternativeAction
    • description

      private final String description
    • evaluated

      private boolean evaluated
    • selectedAction

      private LogicAction selectedAction
  • Constructor Details

    • ConditionalAction

      public ConditionalAction(LogicCondition condition, LogicAction primaryAction, String description)
      Creates a conditional action with primary action only (no alternative).
      Parameters:
      condition - condition to evaluate
      primaryAction - action to execute if condition is true
      description - description of this conditional
    • ConditionalAction

      public ConditionalAction(LogicCondition condition, LogicAction primaryAction, LogicAction alternativeAction, String description)
      Creates a conditional action with both primary and alternative actions.
      Parameters:
      condition - condition to evaluate
      primaryAction - action to execute if condition is true
      alternativeAction - action to execute if condition is false (can be null)
      description - description of this conditional
  • Method Details

    • execute

      public void execute()
      Description copied from interface: LogicAction
      Executes the action.

      This method performs the actual operation on the target equipment.

      Specified by:
      execute in interface LogicAction
    • isComplete

      public boolean isComplete()
      Description copied from interface: LogicAction
      Checks if the action has completed.

      Some actions are instantaneous (return true immediately), while others may take time to complete (e.g., valve stroke).

      Specified by:
      isComplete in interface LogicAction
      Returns:
      true if action is complete
    • getDescription

      public String getDescription()
      Description copied from interface: LogicAction
      Gets a human-readable description of the action.
      Specified by:
      getDescription in interface LogicAction
      Returns:
      action description
    • getTargetName

      public String getTargetName()
      Description copied from interface: LogicAction
      Gets the name of the target equipment.
      Specified by:
      getTargetName in interface LogicAction
      Returns:
      equipment name
    • getCondition

      public LogicCondition getCondition()
      Gets the condition being evaluated.
      Returns:
      condition
    • getPrimaryAction

      public LogicAction getPrimaryAction()
      Gets the primary action (executed if condition true).
      Returns:
      primary action
    • getAlternativeAction

      public LogicAction getAlternativeAction()
      Gets the alternative action (executed if condition false).
      Returns:
      alternative action, or null if none
    • getSelectedAction

      public LogicAction getSelectedAction()
      Gets the action that was selected after evaluation.
      Returns:
      selected action, or null if not yet evaluated
    • isEvaluated

      public boolean isEvaluated()
      Checks if the condition has been evaluated.
      Returns:
      true if evaluated
    • reset

      public void reset()
      Resets the conditional for re-evaluation.