. */ include_once 'phing/filters/BaseParamFilterReader.php'; include_once 'phing/types/RegularExpression.php'; include_once 'phing/filters/ChainableReader.php'; /** * Filter which includes only those lines that contain the user-specified * regular expression matching strings. * * Example: *
* * Or: * ** *
* * This will fetch all those lines that contain the pattern* *
foo
*
* @author Yannick Lecaillez regexp
element.
*
* @return object regExp The regexp
element added.
*/
function createRegexp() {
$num = array_push($this->_regexps, new RegularExpression());
return $this->_regexps[$num-1];
}
/**
* Sets the vector of regular expressions which must be contained within
* a line read from the original stream in order for it to match this
* filter.
*
* @param regexps An array of regular expressions which must be contained
* within a line in order for it to match in this filter. Must not be
* null
.
*/
function setRegexps($regexps) {
// type check, error must never occur, bad code of it does
if ( !is_array($regexps) ) {
throw new Exception("Excpected an 'array', got something else");
}
$this->_regexps = $regexps;
}
/**
* Returns the array of regular expressions which must be contained within
* a line read from the original stream in order for it to match this
* filter.
*
* @return array The array of regular expressions which must be contained within
* a line read from the original stream in order for it to match this
* filter. The returned object is "live" - in other words, changes made to
* the returned object are mirrored in the filter.
*/
function getRegexps() {
return $this->_regexps;
}
/**
* Creates a new LineContainsRegExp using the passed in
* Reader for instantiation.
*
* @param object A Reader object providing the underlying stream.
* Must not be null
.
*
* @return object A new filter based on this configuration, but filtering
* the specified reader
*/
function chain(Reader $reader) {
$newFilter = new LineContainsRegExp($reader);
$newFilter->setRegexps($this->getRegexps());
$newFilter->setInitialized(true);
$newFilter->setProject($this->getProject());
return $newFilter;
}
/**
* Parses parameters to add user defined regular expressions.
*/
private function _initialize() {
$params = $this->getParameters();
if ( $params !== null ) {
for($i = 0 ; $i