org.codehaus.plexus.util
public class SweeperPool extends Object
Nested Class Summary | |
---|---|
static class | SweeperPool.Sweeper
Periodically at sweepInterval goes through
and tests if the pool should be trimmed.
|
Field Summary | |
---|---|
static boolean | DEBUG |
int | maxSize Absolute maxiumuim size of the pool. |
int | minSize The size the pool gets trimmed down to |
ArrayList | pooledObjects Holds the pooled objects |
boolean | shuttingDown Flag indicating this pool is shuting down |
SweeperPool.Sweeper | sweeper Sweeps the pool periodically to trim it's size |
int | triggerSize When the sweeper runs
and the pool is over this size, then the pool is trimmed |
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
|
int | saneConvert(int value) |
void | trim()
Trim the pool down to min size
|
There are a number of settings to control how the pool operates.
minSize
- this is the size the pool is trimmed totriggerSize
- 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
.
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
Returns: the number of pooled objects
Parameters: obj
Parameters: obj
Parameters: obj
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