org.apache.avro.util.springframework

## Class ConcurrentReferenceHashMap.ReferenceManager

- java.lang.Object
- - org.apache.avro.util.springframework.ConcurrentReferenceHashMap.ReferenceManager

Enclosing class:
  ConcurrentReferenceHashMap<K,V>

    protected class ConcurrentReferenceHashMap.ReferenceManager
    extends Object

Strategy class used to manage `References`. This class can be overridden if alternative reference types need to be supported.

### Constructor Summary

Constructors
`protected` `ReferenceManager()`

### Method Summary

All Methods Instance Methods Concrete Methods
`ConcurrentReferenceHashMap.Reference<K,V>` `createReference(ConcurrentReferenceHashMap.Entry<K,V> entry, int hash, ConcurrentReferenceHashMap.Reference<K,V> next)` Factory method used to create a new `ConcurrentReferenceHashMap.Reference`.
`ConcurrentReferenceHashMap.Reference<K,V>` `pollForPurge()` Return any reference that has been garbage collected and can be purged from the underlying structure or `null` if no references need purging.

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

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

### Constructor Detail

#### ReferenceManager

    protected ReferenceManager()

### Method Detail

#### createReference

    public ConcurrentReferenceHashMap.Reference<K,V> createReference(ConcurrentReferenceHashMap.Entry<K,V> entry,
                                                                     int hash,
                                                                     @Nullable
                                                                     ConcurrentReferenceHashMap.Reference<K,V> next)

Factory method used to create a new `ConcurrentReferenceHashMap.Reference`.

Parameters:
  `entry` - the entry contained in the reference
  `hash` - the hash
  `next` - the next reference in the chain, or `null` if none
Returns:
  a new `ConcurrentReferenceHashMap.Reference`

#### pollForPurge

    @Nullable
    public ConcurrentReferenceHashMap.Reference<K,V> pollForPurge()

Return any reference that has been garbage collected and can be purged from the underlying structure or `null` if no references need purging. This method must be thread safe and ideally should not block when returning `null`. References should be returned once and only once.

Returns:
  a reference to purge or `null`