A buffer can be used wherever input or output can be specified. A job
A buffer can be initialised with text, or lines of text and will can also provide it's contents as text.
lines | The buffer contents as an array of lines. |
text | The buffer as a text property. |
Example 1 | Capturing the contents of a file in a buffer. |
Example 2 | Accumulate output in a buffer. |
Example 3 | Write the contents of a buffer to file. |
Example 4 | Using the contents of a buffer as lines. |
Configured By | ELEMENT |
Access | READ_WRITE |
Required | No. |
The buffer contents as an array of lines. Either set the contents to be the array or read the contents of the buffer as an array.
Configured By | TEXT |
Access | READ_WRITE |
Required | No. |
The buffer as a text property. Either set the buffer contents from text or get the buffer contents as text.
Capturing the contents of a file in a buffer.
<oddjob id="this"> <job> <sequential> <jobs> <variables id="v"> <buff> <buffer/> </buff> </variables> <copy id="foo"> <from> <file file="${this.args[0]}/work/io/buffer_example.txt"/> </from> <output> <value value="${v.buff}"/> </output> </copy> <echo id="e">${v.buff}</echo> </jobs> </sequential> </job> </oddjob>
Accumulate output in a buffer.
<oddjob id="this"> <job> <sequential id="jobs"> <jobs> <variables id="v"> <buff> <buffer/> </buff> </variables> <echo>apples <output> <value value="${v.buff}"/> </output> </echo> <echo>oranges <output> <value value="${v.buff}"/> </output> </echo> <echo>${v.buff}</echo> </jobs> </sequential> </job> </oddjob>
Write the contents of a buffer to file. This example also shows initialising the buffer with a list.
<oddjob id="this"> <job> <sequential> <jobs> <mkdir dir="${this.args[0]}/work/io"/> <variables id="v"> <buff> <buffer> <lines> <list> <values> <value value="apples"/> <value value="oranges"/> </values> </list> </lines> </buffer> </buff> </variables> <copy> <input> <value value="${v.buff}"/> </input> <output> <file file="${this.args[0]}/work/io/buffer_example.txt"/> </output> </copy> </jobs> </sequential> </job> </oddjob>
Using the contents of a buffer as lines. This also shows how a buffer can be initialised with text.
<oddjob id="this"> <job> <sequential> <jobs> <variables id="v"> <buff> <buffer>apples oranges</buffer> </buff> </variables> <foreach> <values> <value value="${v.buff.lines}"/> </values> <configuration> <xml> <foreach id="f"> <job> <echo>Line ${f.index} is ${f.current}.</echo> </job> </foreach> </xml> </configuration> </foreach> </jobs> </sequential> </job> </oddjob>