package graph
The graph construction APIs.
A graph is returned by a com.jafpl.config.Jafpl configuration. The core type of a graph is the Node. Nodes cannot be created directly; instead they are created in the Graph or in a container (via its ContainerStart) through methods on those objects.
- Alphabetic
- By Inheritance
- graph
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
class
AtomicNode extends Node
An atomic node.
An atomic node.
Atomic nodes are the most common pipeline extension point. The implementation is provided by the
step
. -
class
Binding extends AtomicNode
A variable binding.
A variable binding.
When pipelines are constructed, variable bindings associate expressions with variable names. At runtime, the association is between the name and its computed value.
- class BindingParams extends AnyRef
-
class
CatchStart extends ContainerStart
The catch block of a try catch.
The catch block of a try catch.
Catch containers are created with the
addCatch
method of com.jafpl.graph.TryCatchStart. -
class
ChooseStart extends ContainerStart
A choose container.
A choose container.
Choose containers are created with the
addChoose
method of com.jafpl.graph.ContainerStart. -
class
ContainerStart extends Node
A node that contains other nodes.
A node that contains other nodes.
Conceptually, some nodes contain others. A loop, for example, contains the steps that form the body of the loop.
In practice, containers are represented by a start and an end.
-
class
FinallyStart extends ContainerStart
The catch block of a try catch.
The catch block of a try catch.
Catch containers are created with the
addCatch
method of com.jafpl.graph.TryCatchStart. -
class
Graph extends AnyRef
A pipeline graph.
A pipeline graph.
This is the fundamental API for constructing pipeline graphs. Once constructed, graphs can be executed with the com.jafpl.runtime.GraphRuntime.
Graphs are initially open, meaning that nodes and edges can be added to them, and !valid, meaning that no attempt has been made to validate them.
When all of the nodes and edges have been added to a graph, the graph is closed and validated by calling the close() method. Only valid graphs can be executed.
Generally speaking, steps are either atomic (in which case you're responsible for providing their implementation) or containers. Each may have an optional label. The labels have no purpose except clarity in error messages and in the graph diagrams. Labels must begin with a letter and may consist of letters, digits, hyphens, and underscores.
-
trait
Location extends AnyRef
A location.
A location.
This interface indentifies a location for use in subsequent reporting.
-
class
LoopEachStart extends LoopStart
A for-each container.
A for-each container.
ForEach containers are created with the
addForEach
method of com.jafpl.graph.ContainerStart. -
abstract
class
LoopStart extends ContainerStart
A looping container.
A looping container.
Loops need buffers when they read from steps outside the loop.
In practice, containers are represented by a start and an end.
-
abstract
class
Node extends AnyRef
A node in the pipeline graph.
A node in the pipeline graph.
You can't instantiate nodes directly, see the methods on com.jafpl.graph.Graph and on com.jafpl.graph.ContainerStart and its subtypes.
- class NodeLocation extends Location
-
class
OptionBinding extends Binding
An option binding.
An option binding.
When pipelines are constructed, option bindings associate expressions with variable names. At runtime, the association is between the name and its computed value.
An OptionBinding is just like a Binding except that a specific, computed value may be provided before the graph begins executing. In that case, the provided value is used and the expression is not evaluated.
- class TryCatchStart extends ContainerStart
Just Another Fine Pipeline Language
This is a pipeline framework. It’s built on top of Akka actors to support arbitrary data flow pipelines. It is wholly agnostic to the kinds of data that flow through the pipelines and the implementations of the steps that process them.
See http://jafpl.com/ for more general information.