net.i2p.kademlia

## Class RandomIfOldTrimmer<T extends SimpleDataStructure>

- java.lang.Object
- - net.i2p.kademlia.RandomTrimmer<T>
  - - net.i2p.kademlia.RandomIfOldTrimmer<T>

- Type Parameters:
    `T` - type of SimpleDataStructure objects in the bucket
  All Implemented Interfaces:
    KBucketTrimmer<T>

      public class RandomIfOldTrimmer<T extends SimpleDataStructure>
      extends RandomTrimmer<T>

  Removes a random element, but only if the bucket hasn't changed in 5 minutes.

- - ### Field Summary

    - ### Fields inherited from class net.i2p.kademlia.RandomTrimmer

      `_ctx`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RandomIfOldTrimmer(I2PAppContext ctx, int max)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `trim(KBucket<T> kbucket, T toAdd)` Called from add() just before adding the entry.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RandomIfOldTrimmer

          public RandomIfOldTrimmer(I2PAppContext ctx,
                                    int max)

  - ### Method Detail

    - #### trim

          public boolean trim(KBucket<T> kbucket,
                              T toAdd)

      Description copied from interface: `KBucketTrimmer`
      Called from add() just before adding the entry. You may call getEntries() and/or remove() from here. Do NOT call add(). To always discard a newer entry, always return false.
      Specified by:
        `trim` in interface `KBucketTrimmer<T extends SimpleDataStructure>`
      Overrides:
        `trim` in class `RandomTrimmer<T extends SimpleDataStructure>`
      Parameters:
        `kbucket` - the kbucket that is now too big
      Returns:
        true to actually add the entry.