Package com.ganteater.ae.processor
This package implements the runtime that executes a parsed recipe document and performs
reflective dispatch from XML elements (“commands”) to Java methods on a
Processor implementation (typically
BaseProcessor).
Recipe processing model
Recipes are parsed into a tree of Node instances.
The engine traverses that tree and, for each element, resolves a handler method whose name is
derived from the tag. For example, a <Copy/> tag is handled by a
runCommandCopy(Node) method.
Certain tags are treated as engine-level control-flow primitives rather than being dispatched
to a runCommand... method; those are enumerated by
SpecialCommands.
Execution state and variables
During execution the processor tracks state including the current node, stop/pause flags, and
variable scopes used for attribute and text substitution. Command implementations in
BaseProcessor typically read attributes from nodes and act on
the filesystem, environment, and external tools.
Concurrency
Some recipe sections can run concurrently. TaskProcessorThread
provides a Runnable that executes a nested task and integrates with
RecipeListener callbacks.
Key types
Processor– traversal, dispatch, and shared execution stateBaseProcessor– built-in command library (runCommand...methods)CommandInfo– command metadata (name, description, arguments)SpecialCommands– tags receiving special engine handlingTaskProcessorThread– concurrent task runner
Minimal example
Processor processor = new BaseProcessor(manager, log, baseDir);
Node recipe = new EasyParser().load("path/to/recipe.xml");
processor.processTesting(recipe, manager.getSystemVariables(), baseDir);