Package 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
Modifier
Constructor
Description
`protected`
`ReferenceManager()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### ReferenceManager

protected ReferenceManager()

## Method Details

### 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`