## org.codehaus.plexus.util
Class SweeperPool

    java.lang.Object
      org.codehaus.plexus.util.SweeperPool

    public class SweeperPool

extends Object

Pools a bunch of objects . Runs a sweeper periodically to keep it down to size. The objects in the pool first get disposed first.

Version:
  $Id: SweeperPool.java 8010 2009-01-07 12:59:50Z vsiveton $
Author:
  Bert van Brakel

Constructor Summary
`SweeperPool(int maxSize, int minSize, int intialCapacity, int sweepInterval, int triggerSize)` There are a number of settings to control how the pool operates.

Method Summary
`void` `dispose()` Dispose of this pool.
`Object` `get()` Return the pooled object
`int` `getSize()` Return the number of pooled objects.
`void` `objectAdded(Object obj)` Override this to be notified of object addition.
`void` `objectDisposed(Object obj)` Override this to be notified of object disposal.
`void` `objectRetrieved(Object obj)` Override this to be notified of object retrieval.
`boolean` `put(Object obj)` Add an object to the pool
`void` `trim()` Trim the pool down to min size

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SweeperPool

    public SweeperPool(int maxSize,
                       int minSize,
                       int intialCapacity,
                       int sweepInterval,
                       int triggerSize)

  There are a number of settings to control how the pool operates.

  - `minSize` - this is the size the pool is trimmed to
  - `triggerSize` - this determines if the pool is trimmed when the sweeper runs. If the pool size is greater or equal than this value then the pool is trimmed to `minSize`.</lie>
  - `maxSize` - if the pool has reached this size, any objects added are immediatley disposed. If the pool is this size when the sweeper runs, then the pool is also trimmed to `minSize` irrespective of the triggerSize.
  - `sweepInterval` - how often the sweeper runs. Is actually the time since the sweeper last finished a pass. 0 if the sweeper should not run.

  Any value less than 0 is automatically converted to 0

Method Detail

### get

    public Object get()

  Return the pooled object

### put

    public boolean put(Object obj)

  Add an object to the pool

  Parameters:
    `obj` - the object to pool. Can be null.
  Returns:
    true if the object was added to the pool, false if it was disposed or null

### getSize

    public int getSize()

  Return the number of pooled objects. This is never greater than t maximuim size of the pool

  Returns:
    the number of pooled objects

### dispose

    public void dispose()

  Dispose of this pool. Stops the sweeper and disposes each object in the pool

### trim

    public void trim()

  Trim the pool down to min size

### objectDisposed

    public void objectDisposed(Object obj)

  Override this to be notified of object disposal. Called after the object has been removed. Occurs when the pool is trimmed.

  Parameters:
    `obj` -

### objectAdded

    public void objectAdded(Object obj)

  Override this to be notified of object addition. Called before object is to be added.

  Parameters:
    `obj` -

### objectRetrieved

    public void objectRetrieved(Object obj)

  Override this to be notified of object retrieval. Called after object removed from the pool, but before returned to the client.

  Parameters:
    `obj` -