classes/phing/filters/util/ChainReaderHelper.php

\ChainReaderHelper

Process a FilterReader chain.

Here, the interesting method is 'getAssembledReader'. The purpose of this one is to create a simple Reader object which apply all filters on another primary Reader object.

For example : In copyFile (phing.util.FileUtils) the primary Reader is a FileReader object (more accuratly, a BufferedReader) previously setted for the source file to copy. So, consider this filterchain :

<filterchain>
   <stripphpcomments />
   <linecontains>
       <contains value="foo">
   </linecontains>
 <tabtospaces tablength="8" />

getAssembledReader will return a Reader object wich read on each of these filters. Something like this : ('->' = 'which read data from') :

[TABTOSPACES] -> [LINECONTAINS] -> [STRIPPHPCOMMENTS] -> [FILEREADER] (primary reader)

So, getAssembledReader will return the TABTOSPACES Reader object. Then each read done with this Reader object will follow this path.

Hope this explanation is clear :)

TODO: Implement the classPath feature.

access
public
author
Yannick Lecaillez
package
phing.filters.util
version
$Revision: 526 $ $Date: 2009-08-11 14:11:17 +0200 (Tue, 11 Aug 2009) $

Properties

Propertyprivate  $bufferSize= '8192'

The site of the buffer to be used.

Default value8192Details
Type
Propertyprivate  $filterChains= 'array'

Chain of filters

Default valuearrayDetails
Type
Propertyprivate  $primaryReader= 'null'

Primary reader to wich the reader chain is to be attached

Default valuenullDetails
Type
Propertyprivate  $project= ''

The Phing project

Details
Type

Methods

methodpublic  getAssembledReader( ) :
methodpublic  getProject( ) :
methodpublic  setBufferSize(  $size ) :
Parameters
Name Type Description
$size
methodpublic  setFilterChains(  $fchain ) :
Parameters
Name Type Description
$fchain
methodpublic  setPrimaryReader(  $reader ) :
Parameters
Name Type Description
$reader
methodpublic  setProject(  $project ) :
Parameters
Name Type Description
$project
Documentation was generated by DocBlox 0.13.1.