use of datawave.query.language.parser.ParseException in project datawave by NationalSecurityAgency.
the class LuceneUUIDQueryParser method parse.
@Override
public datawave.query.language.tree.QueryNode parse(String query) throws ParseException {
// replace open smart quote 147
query = query.replaceAll("\\u0093", "\"");
// replace close smart quote 148
query = query.replaceAll("\\u0094", "\"");
datawave.query.language.tree.QueryNode parsedQuery = null;
parsedQuery = super.parse(query);
if (!(parsedQuery instanceof SelectorNode)) {
throw new ParseException("Query: " + query + " not supported with the LuceneQueryUUIDParser");
}
SelectorNode selectorNode = (SelectorNode) parsedQuery;
FieldedTerm fieldedTerm = (FieldedTerm) selectorNode.getQuery();
String field = fieldedTerm.getField();
UUIDType uuidType = null;
for (UUIDType u : uuidTypes) {
if (u.getFieldName().equals(field)) {
uuidType = u;
break;
}
}
if (uuidType == null) {
throw new ParseException("Query: " + query + " not supported with the LuceneQueryUUIDParser");
}
if (fieldedTerm instanceof RangeFieldedTerm) {
throw new ParseException("Query: " + query + " not supported with the LuceneQueryUUIDParser");
}
if (fieldedTerm instanceof WildcardFieldedTerm) {
int firstWildcard = WildcardFieldedTerm.getFirstWildcardIndex(fieldedTerm.getSelector());
Integer wildcardAllowedAfter = uuidType.getAllowWildcardAfter();
if (wildcardAllowedAfter == null || firstWildcard < wildcardAllowedAfter) {
throw new ParseException("Query: " + query + " not supported with the LuceneQueryUUIDParser");
}
}
return parsedQuery;
}
use of datawave.query.language.parser.ParseException in project datawave by NationalSecurityAgency.
the class EvaluationOnly method toString.
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("((_Eval_ = true) && (");
List<String> params = getParameterList();
if (params.size() != 1) {
BadRequestQueryException qe = new BadRequestQueryException(DatawaveErrorCode.INVALID_FUNCTION_ARGUMENTS, MessageFormat.format("{0}", this.name));
throw new IllegalArgumentException(qe);
} else {
try {
sb.append(parser.parse(params.get(0)).getOriginalQuery());
} catch (ParseException e) {
BadRequestQueryException qe = new BadRequestQueryException(DatawaveErrorCode.INVALID_FUNCTION_ARGUMENTS, MessageFormat.format("{0}", this.name));
throw new IllegalArgumentException(qe);
}
}
sb.append("))");
return sb.toString();
}
Aggregations