Class WhileClosure

  • All Implemented Interfaces:
    java.io.Serializable, Closure

    @Deprecated(since="2021-04-30")
    public class WhileClosure
    extends java.lang.Object
    implements Closure, java.io.Serializable
    Deprecated.
    Commons Collections 3 is in maintenance mode. Commons Collections 4 should be used instead.
    Closure implementation that executes a closure repeatedly until a condition is met, like a do-while or while loop.

    WARNING: from v3.2.2 onwards this class will throw an UnsupportedOperationException when trying to serialize or de-serialize an instance to prevent potential remote code execution exploits.

    In order to re-enable serialization support for WhileClosure the following system property can be used (via -Dproperty=true):

      org.apache.commons.collections.enableUnsafeSerialization
      
    Since:
    Commons Collections 3.0
    See Also:
    Serialized Form
    • Constructor Detail

      • WhileClosure

        public WhileClosure​(Predicate predicate,
                            Closure closure,
                            boolean doLoop)
        Deprecated.
        Constructor that performs no validation. Use getInstance if you want that.
        Parameters:
        predicate - the predicate used to evaluate when the loop terminates, not null
        closure - the closure the execute, not null
        doLoop - true to act as a do-while loop, always executing the closure once
    • Method Detail

      • getInstance

        public static Closure getInstance​(Predicate predicate,
                                          Closure closure,
                                          boolean doLoop)
        Deprecated.
        Factory method that performs validation.
        Parameters:
        predicate - the predicate used to evaluate when the loop terminates, not null
        closure - the closure the execute, not null
        doLoop - true to act as a do-while loop, always executing the closure once
        Returns:
        the while closure
        Throws:
        java.lang.IllegalArgumentException - if the predicate or closure is null
      • execute

        public void execute​(java.lang.Object input)
        Deprecated.
        Executes the closure until the predicate is false.
        Specified by:
        execute in interface Closure
        Parameters:
        input - the input object
      • getPredicate

        public Predicate getPredicate()
        Deprecated.
        Gets the predicate in use.
        Returns:
        the predicate
        Since:
        Commons Collections 3.1
      • getClosure

        public Closure getClosure()
        Deprecated.
        Gets the closure.
        Returns:
        the closure
        Since:
        Commons Collections 3.1
      • isDoLoop

        public boolean isDoLoop()
        Deprecated.
        Is the loop a do-while loop.
        Returns:
        true is do-while, false if while
        Since:
        Commons Collections 3.1