package de.danielbasedow.prospecter.core.query;
import de.danielbasedow.prospecter.core.Token;
import de.danielbasedow.prospecter.core.query.build.ClauseNode;
/**
* A Condition is represented by a field name and token combination.
*/
public class Condition implements ClauseNode {
private final String fieldName;
private final Token token;
/**
* if "not" is set the condition will result in a posting in a "NOT-index"
*/
private boolean not;
public Condition(String fieldName, Token token) {
this.fieldName = fieldName;
this.token = token;
this.not = false;
}
public Condition(String fieldName, Token token, boolean not) {
this.fieldName = fieldName;
this.token = token;
this.not = not;
}
public String getFieldName() {
return fieldName;
}
public Token getToken() {
return token;
}
public boolean isNot() {
return not;
}
public void setNot(boolean not) {
this.not = not;
}
@Override
public boolean isLeaf() {
return true;
}
/**
* AIMA symbols need a unique, java conform name
*
* @return symbol name for use in AIMA
*/
public String getSymbolName() {
return fieldName + token.getCondition().name() + token.getToken().toString();
}
}