Class ForClosure

  • All Implemented Interfaces:
    Serializable, Closure

    public class ForClosure
    extends Object
    implements Closure, Serializable
    Closure implementation that calls another closure n times, like a for 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 ForClosure the following system property can be used (via -Dproperty=true):

     org.apache.commons.collections.enableUnsafeSerialization
     
    Since:
    Commons Collections 3.0
    Version:
    $Revision: 1713845 $ $Date: 2015-11-11 15:02:16 +0100 (Wed, 11 Nov 2015) $
    Author:
    Stephen Colebourne
    See Also:
    Serialized Form
    • Constructor Detail

      • ForClosure

        public ForClosure​(int count,
                          Closure closure)
        Constructor that performs no validation. Use getInstance if you want that.
        Parameters:
        count - the number of times to execute the closure
        closure - the closure to execute, not null
    • Method Detail

      • getInstance

        public static Closure getInstance​(int count,
                                          Closure closure)
        Factory method that performs validation.

        A null closure or zero count returns the NOPClosure. A count of one returns the specified closure.

        Parameters:
        count - the number of times to execute the closure
        closure - the closure to execute, not null
        Returns:
        the for closure
      • execute

        public void execute​(Object input)
        Executes the closure count times.
        Specified by:
        execute in interface Closure
        Parameters:
        input - the input object
      • getClosure

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

        public int getCount()
        Gets the count.
        Returns:
        the count
        Since:
        Commons Collections 3.1