private void validateInOperator(final OperatorExpression expression, final Logger log) { if (!validateOperatorInputs(expression, log)) { return; } final List<FilterExpression> inputs = expression.getInputs(); final ValueExpression valueExpression = (ValueExpression) inputs.get(1); if (valueExpression.getValueType() != ValueType.STRING) { log.report(MessageKey.DATASET_FILTER_OPERATOR_INCOMPATIBLE_TYPES); } }
private void validateLikeOperator(final OperatorExpression expression, final Logger log) { if (!validateOperatorInputs(expression, log)) { return; } final List<FilterExpression> inputs = expression.getInputs(); final AttributeExpression attributeExpression = (AttributeExpression) inputs.get(0); final FeatureTypeAttribute attribute = findAttribute( attributeExpression.getAttributeName(), attributeExpression.getAttributeType()); final ValueExpression valueExpression = (ValueExpression) inputs.get(1); // The attribute and value must have matching types: if (!compareAttributeType(attribute, ((ValueExpression) inputs.get(1)).getValueType()) || valueExpression.getValueType() != ValueType.STRING) { log.report(MessageKey.DATASET_FILTER_OPERATOR_INCOMPATIBLE_TYPES); } }