Class TaskScript

java.lang.Object
com.valhalla.sdk.AbstractScript
com.valhalla.sdk.tasks.TaskScript
All Implemented Interfaces:
Sleepable

public abstract class TaskScript extends AbstractScript
Prioritized-node script base for compact finite-state scripts.

Nodes are sorted by descending TaskNode.priority(). Each loop evaluates a stable snapshot of the registered nodes and executes only the first accepted node. A negative execution delay requests a cooperative script stop.

  • Constructor Details

    • TaskScript

      public TaskScript()
  • Method Details

    • addNodes

      protected final void addNodes(TaskNode... additions)
      Adds nodes and restores descending-priority order.
      Parameters:
      additions - non-null nodes to register
    • clearNodes

      protected final void clearNodes()
      Removes every registered node.
    • removeNodes

      protected final void removeNodes(TaskNode... removals)
      Removes matching node instances when present.
      Parameters:
      removals - non-null node instances to remove
    • getNodes

      protected final List<TaskNode> getNodes()
      Returns the currently registered nodes.
      Returns:
      immutable snapshot of nodes in current selection order
    • idleDelayMillis

      protected long idleDelayMillis()
      Defines the idle loop delay.
      Returns:
      requested loop delay when no node accepts; defaults to 250 milliseconds
    • onNoTaskAccepted

      protected void onNoTaskAccepted(ScriptContext context)
      Receives an idle-loop callback after every node rejects the current state.
      Parameters:
      context - current script context
    • onLoop

      public final long onLoop(ScriptContext context)
      Selects and executes at most one node.
      Specified by:
      onLoop in class AbstractScript
      Parameters:
      context - current script context
      Returns:
      selected node delay, or the non-negative idle delay when none accepts