in mailet/standard/src/main/java/org/apache/james/transport/matchers/CompareNumericHeaderValue.java [68:118]
public void init() throws MessagingException {
StringTokenizer st = new StringTokenizer(getCondition(), " \t", false);
if (st.hasMoreTokens()) {
headerName = st.nextToken().trim();
} else {
throw new MessagingException("Missing headerName");
}
if (st.hasMoreTokens()) {
String comparisonOperatorString = st.nextToken().trim();
switch (comparisonOperatorString) {
case "<":
case "LT":
comparisonOperator = LT;
break;
case "<=":
case "=<":
case "LE":
comparisonOperator = LE;
break;
case "==":
case "=":
case "EQ":
comparisonOperator = EQ;
break;
case ">=":
case "=>":
case "GE":
comparisonOperator = GE;
break;
case ">":
case "GT":
comparisonOperator = GT;
break;
default:
throw new MessagingException("Bad comparisonOperator: \"" + comparisonOperatorString + "\"");
}
} else {
throw new MessagingException("Missing comparisonOperator");
}
if (st.hasMoreTokens()) {
String headerValueString = st.nextToken().trim();
try {
headerValue = Double.valueOf(headerValueString);
} catch (NumberFormatException nfe) {
throw new MessagingException("Bad header comparison value: \""
+ headerValueString + "\"", nfe);
}
} else {
throw new MessagingException("Missing headerValue threshold");
}
}