}
} else if( selector instanceof UrlRewriteFilterDetectDescriptor ) {
XPathExpression path = (XPathExpression)selector.compiledPath( XPATH_COMPILER );
Object node = path.evaluate( level.scopeNode, XPathConstants.NODE );
if( node != null ) {
UrlRewriteFilterDetectDescriptor detect = (UrlRewriteFilterDetectDescriptor)selector;
String value = null;
if( node instanceof Element ) {
Element element = (Element)node;
value = element.getTextContent();
} else if( node instanceof Text ) {
Text text = (Text)node;
value = text.getWholeText();
} else if( node instanceof Attr ) {
Attr attr = (Attr)node;
value = attr.getValue();
} else {
throw new IllegalArgumentException( RES.unexpectedSelectedNodeType( node ) );
}
if( detect.compiledValue( REGEX_COMPILER ).matcher( value ).matches() ) {
processBufferedElement( level, detect );
}
}
} else {
throw new IllegalArgumentException( RES.unexpectedRewritePathSelector( selector ) );