{
return false;
}
private CFNodeList selectNodes(XPathSearch search) {
CFNodeList result = new CFNodeList();
if(docNodes == null) {
docNodes = new CFNodeList();
}
for(int i = 0; i < docNodes.size(); i++)
{
DocItem currItem = (DocItem)docNodes.get(i);
DocItem endItem = null;
if (search.searchForEndTag
&& currItem.getMatchingItem() != null) {
endItem = currItem.getMatchingItem();
}
int matches = 0;
int endMatches = 0;
if(search.doChildNodes)
result.addAll(currItem.selectNodes(search));
//r2 added simple * node selection
if(search.searchForTag
&& (currItem.getName().compareToIgnoreCase(search.tagName) == 0
|| search.tagName.equals("*"))
) {
matches++;
}
if (endItem != null
&& search.searchForTag
&& (endItem.getName().compareToIgnoreCase(search.tagName) == 0
|| search.tagName.equals("*"))
) {
endMatches++;
}
//System.out.print("DocItem::selectNodes() - Testing \'" + currItem.getName() + "\'");
if(search.attrSearch.containsKey(XPathSearch.ATTR_STARTPOS)) {
ComparisonType comp = (ComparisonType)search.attrSearch.get(XPathSearch.ATTR_STARTPOS);
//System.out.println(XPathSearch.ATTR_STARTPOS + ": ");
if(comp.performComparison(currItem.startPosition))
{
matches++;
//System.out.print(" success ");
}
if (endItem != null
&& comp.performComparison(endItem.startPosition)) {
endMatches++;
}
}
if(search.attrSearch.containsKey(XPathSearch.ATTR_ENDPOS)) {
//System.out.print(XPathSearch.ATTR_ENDPOS + ":");
ComparisonType comp = (ComparisonType)search.attrSearch.get(XPathSearch.ATTR_ENDPOS);
if(comp.performComparison(currItem.endPosition)) {
matches++;
//System.out.print(" success ");
}
if (endItem != null
&& comp.performComparison(endItem.endPosition)) {
endMatches++;
//System.out.println(" failed ");
}
}
if(matches == search.getMatchesRequired())
{
//System.out.println("DocItem::selectNodes(XPathSearch) - Got match for " + currItem.itemName);
result.add(currItem);
//System.out.print(" name match success");
}
else if(endItem != null
&& endMatches == search.getMatchesRequired()){
result.add(currItem);
//System.out.println(" End matched " + endItem.getMatchingItem());
//System.out.print(" name match failed with ");
}
//System.out.println("");