private Matcher<DataType> createMatcher() {
QueryExpression expression = buildQueryExpression();
Matcher<DataType> matcher = new Matcher<DataType>();
// When the expression accepts the matcher, the matcher will construct
// its evaluation tree
expression.accept(matcher);
return matcher;
}
public ValueType getFirst() {
try {