@Transactional public String expressionIsValid( String expression ) { String expr = getSubstitutedSQLFunc( getSubstitutedExpression( expression ) ); if ( ProgramIndicator.INVALID_IDENTIFIERS_IN_EXPRESSION.equals( expr ) || ProgramIndicator.UNKNOWN_VARIABLE.equals( expr ) ) { return expr; } if ( !ExpressionUtils.isValid( expr, null ) ) { return ProgramIndicator.EXPRESSION_NOT_VALID; } return ProgramIndicator.VALID; }