Class BooleanCondition

    • Method Detail

      • value

        public abstract boolean value()
        Evaluates 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.