Java Reference
In-Depth Information
public boolean testRecord(Element record){
String test;
String results = "";
for(int i=0;i<testVector.size();i++){
test = (String)testVector.elementAt(i);
if(test.equals("OR")||test.equals("AND")||
test.equals("(")||test.equals(")")){
results += " "+test;
}else {
if(testWhereClause(record, test))results += " true";
else results += " false";
}
}
return evaluate(results.trim());
}
// test individual where clauses
private boolean testWhereClause(Element record, String whereClause){
boolean not = false;
boolean retval = false;
String fieldName =
whereClause.substring(0,whereClause.indexOf(" ")).trim();
whereClause = whereClause.substring(fieldName.length()).trim();
String test =
whereClause.substring(0,whereClause.indexOf(" ")).trim();
if(test.equals("NOT")){
not = true;
whereClause = whereClause.substring(test.length()).trim();
test = whereClause.substring(0,whereClause.indexOf(" ")).trim();
}
String operand = whereClause.substring(test.length()).trim();
operand = operand.replace('\'',' ').trim();
String nodeValue = record.getAttribute(fieldName);
if(nodeValue.length()==0){
NodeList fields = record.getElementsByTagName(fieldName);
Element field = (Element)fields.item(0);
nodeValue = field.getFirstChild().getNodeValue();
}
if(test.equals("LIKE")){
retval = isLike(operand,nodeValue);
}
if(test.equals("=")){
Search WWH ::




Custom Search