Class ForClosure
- java.lang.Object
-
- org.apache.commons.collections.functors.ForClosure
-
- All Implemented Interfaces:
java.io.Serializable,Closure
public class ForClosure extends java.lang.Object implements Closure, java.io.Serializable
Closure implementation that calls another closure n times, like a for loop.WARNING: from v3.2.2 onwards this class will throw an
UnsupportedOperationExceptionwhen trying to serialize or de-serialize an instance to prevent potential remote code execution exploits.In order to re-enable serialization support for
ForClosurethe 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) $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private ClosureiClosureThe closure to callprivate intiCountThe number of times to loopprivate static longserialVersionUIDSerial version UID
-
Constructor Summary
Constructors Constructor Description ForClosure(int count, Closure closure)Constructor that performs no validation.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidexecute(java.lang.Object input)Executes the closurecounttimes.ClosuregetClosure()Gets the closure.intgetCount()Gets the count.static ClosuregetInstance(int count, Closure closure)Factory method that performs validation.private voidreadObject(java.io.ObjectInputStream is)Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).private voidwriteObject(java.io.ObjectOutputStream os)Overrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serial version UID- See Also:
- Constant Field Values
-
iCount
private final int iCount
The number of times to loop
-
iClosure
private final Closure iClosure
The closure to call
-
-
Constructor Detail
-
ForClosure
public ForClosure(int count, Closure closure)Constructor that performs no validation. UsegetInstanceif you want that.- Parameters:
count- the number of times to execute the closureclosure- 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 closureclosure- the closure to execute, not null- Returns:
- the
forclosure
-
execute
public void execute(java.lang.Object input)
Executes the closurecounttimes.
-
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
-
writeObject
private void writeObject(java.io.ObjectOutputStream os) throws java.io.IOExceptionOverrides the default writeObject implementation to prevent serialization (see COLLECTIONS-580).- Throws:
java.io.IOException
-
readObject
private void readObject(java.io.ObjectInputStream is) throws java.lang.ClassNotFoundException, java.io.IOExceptionOverrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).- Throws:
java.lang.ClassNotFoundExceptionjava.io.IOException
-
-