# Class: com.pnfsoftware.jeb.util.base.ReusableObjectFactory

Unbounded, concurrency\-friendly object factory for objects that can be used, released, and re\-used. 

 Implementation note: this factory uses two concurrent queues.

## Constructor: ReusableObjectFactory
- parameter: `supplier`, type: `java.util.function.Supplier<T>`

Description: Create a factory.
parameter: supplier: object creator, must support concurrency \(the supplier may be requested to            create object by multiple threads at the same time\)

## Method: get
- return type: `T`

Description: Retrieve or create an object. If all objects created by this factory are in\-use, a new object is created.
return: an object

## Method: getSuppliedCount
- return type: `int`

Description: Get the number of times the supplier created a new object.
return: the number of created objects

## Method: list
- return type: `java.util.List<T>`

Description: Get a copy of the list of all objects \(in\-use and available\) created by this factory.
return: objects created by this factory

## Method: release
- parameter: `o`, type: `T`

Description: Release an object provided by this factory, making it usable by other callers.
parameter: o: an object provided by [#get()](#get())

