public final Boolean evaluate()

in deltaspike/core/api/src/main/java/org/apache/deltaspike/core/api/interpreter/BasePropertyExpressionInterpreter.java [37:97]


    public final Boolean evaluate(String expressions)
    {
        boolean result = false;
        String[] foundExpressions = expressions.split(";");

        SimpleOperationEnum operation;
        for (String expression : foundExpressions)
        {
            result = false;
            if (expression.contains(SimpleOperationEnum.IS.getValue()))
            {
                operation = SimpleOperationEnum.IS;
            }
            else if (expression.contains(SimpleOperationEnum.NOT.getValue()))
            {
                operation = SimpleOperationEnum.NOT;
            }
            else
            {
                throw new IllegalStateException("expression: " + expression + " isn't supported by " +
                        getClass().getName() + " supported operations: " + SimpleOperationEnum.getOperations() +
                        "separator: ';'");
            }

            String[] keyValue = expression.split(operation.getValue());

            String configuredValue = getConfiguredValue(keyValue[0]);

            if (configuredValue != null)
            {
                configuredValue = configuredValue.trim();
            }
            else
            {
                configuredValue = "";
            }

            if (!ASTERISK.equals(keyValue[1]) && "".equals(configuredValue))
            {
                continue;
            }

            if (ASTERISK.equals(keyValue[1]) && !"".equals(configuredValue))
            {
                result = true;
                continue;
            }

            if (SimpleOperationEnum.IS.equals(operation) && !keyValue[1].equalsIgnoreCase(configuredValue))
            {
                return false;
            }
            else if (SimpleOperationEnum.NOT.equals(operation) && keyValue[1].equalsIgnoreCase(configuredValue))
            {
                return false;
            }
            result = true;
        }

        return result;
    }