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
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) $
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private Closure
iClosure
The closure to callprivate int
iCount
The number of times to loopprivate static long
serialVersionUID
Serial 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 void
execute(java.lang.Object input)
Executes the closurecount
times.Closure
getClosure()
Gets the closure.int
getCount()
Gets the count.static Closure
getInstance(int count, Closure closure)
Factory method that performs validation.private void
readObject(java.io.ObjectInputStream is)
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).private void
writeObject(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. UsegetInstance
if 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
for
closure
-
execute
public void execute(java.lang.Object input)
Executes the closurecount
times.
-
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.IOException
Overrides 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.IOException
Overrides the default readObject implementation to prevent de-serialization (see COLLECTIONS-580).- Throws:
java.lang.ClassNotFoundException
java.io.IOException
-
-