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>