Class BooleanCondition

    • Method Detail

      • value

        public abstract boolean value()
        Returns:
        evaluate the condition and return its value.
      • children

        public abstract <T> Iterable<T> children​(Class<T> type)
        Recursively collect all children of type type.
        Parameters:
        type - implementation type of the conditions to collect and return.
        Returns:
        non-null, unmodifiable iteration of children of type type.
      • reduce

        public abstract BooleanCondition reduce()
        Reduce evaluation tree by cutting off branches that evaluate trivially and replacing them with a leave note corresponding to the value the branch evaluated to.

        Example 1 (T=True, F=False, C=non-trivial check): OR / \ => T C T Example 2 (cuts off a not-trivial check): AND / \ => F C F Example 3: AND / \ => F T F

        There is no guarantee that the resulting tree is minimal. The only guarantee made is that branches that evaluate trivially will be cut off and replaced by primitive values.

      • evaluatesTrivially

        protected abstract boolean evaluatesTrivially()
        Check if the condition evaluates to either true or false without providing additional information to the evaluation tree, e.g. through checks to a remote service such as PermissionBackend.

        In this case, the tree can be reduced to skip all non-trivial checks resulting in a performance gain.