} catch (TypingException e1) {
throw new JDOException(
"Bad parameter type for the 'startsWith' method", e1);
}
}
e = new Like(str, e);
break;
}
case ENDS_WITH_OPERATOR:
{
stack.pop();
Object oe = stack.pop();
if (debug) {
logger.log(BasicLevel.DEBUG, "pop expression: " + oe);
}
Expression str = (Expression) oe;
if (e instanceof BasicParameterOperand) {
e = new StringComparatorParameterOperand((BasicParameterOperand) e, ".*", null);
} else if (e instanceof BasicOperand) {
try {
e = new BasicOperand("%" + ((BasicOperand) e).getString());
} catch (TypingException e1) {
throw new JDOException(
"Bad parameter type for the 'startsWith' method", e1);
}
}
e = new Like(str, e);
break;
}
case EQUALS_OPERATOR:
//TODO: Support the equals operator
break;
case MATCHES_OPERATOR:
{
stack.pop();
Object oe = stack.pop();
if (debug) {
logger.log(BasicLevel.DEBUG, "pop expression: " + oe);
}
Expression str = (Expression) oe;
if (e instanceof BasicParameterOperand) {
//e = new StringComparatorParameterOperand((BasicParameterOperand) e, "%", "%");
} else if (e instanceof BasicOperand) {
try {
e = new BasicOperand(((BasicOperand) e).getString());
} catch (TypingException e1) {
throw new JDOException(
"Bad parameter type for the 'startsWith' method", e1);
}
}
e = new Like(str, e);
break;
}
case SUBSTRING_OPERATOR:
{
stack.pop();