trait ViewportComposer extends AnyRef
Decompose and recompose data for viewport processing.
Viewports operate on sub-portions of a resource (some of the children in an XML document, some of the properties in a JSON object, etc.).
The decompose
method is called before the viewport processing begins. It extracts the sub-portions
that should be processed and returns them. Each returned item is mutable and will be updated by
the viewport processing.
The method by which sub-portions are selected is irrelevant to the pipeline engine. Often it will be convenient to pass an expression or other data to the implementation of the composer to control the selection.
Note: it's an implementation detail whether the items returned are pointers into the original data structure or copies of them. If they are pointers into the original data structure, then viewport steps may be able to navigate outside the confines of the sub-portion selected. For better or worse.
The recompose
method is called after viewport processing is complete. The composer
reassembles the resource using the transformed portions and returns the resulting resource.
- Alphabetic
- By Inheritance
- ViewportComposer
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
decompose(message: Message): List[ViewportItem]
Decompose the specified item into sub-portions for viewport processing.
Decompose the specified item into sub-portions for viewport processing.
- message
The message containing the item to be processed by the viewport.
- returns
A list of sub-portions to process in the viewport.
-
abstract
def
recompose(): Message
Recompose the item.
Recompose the item.
- returns
The recomposed item.
-
abstract
def
runtimeBindings(bindings: Map[String, Message]): Unit
Inform the composer of any in-scope bindings
Inform the composer of any in-scope bindings
- bindings
The map of name/binding message pairs
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
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.