Package net.bytebuddy.matcher
Class CachingMatcher.WithInlineEviction<S>
java.lang.Object
net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBase<T>
net.bytebuddy.matcher.CachingMatcher<S>
net.bytebuddy.matcher.CachingMatcher.WithInlineEviction<S>
- Type Parameters:
S
- The actual matched type of this matcher.
- All Implemented Interfaces:
ElementMatcher<S>
,ElementMatcher.Junction<S>
- Enclosing class:
- CachingMatcher<T>
A caching matcher with inline cache eviction.
-
Nested Class Summary
Nested classes/interfaces inherited from class net.bytebuddy.matcher.CachingMatcher
CachingMatcher.WithInlineEviction<S>
Nested classes/interfaces inherited from interface net.bytebuddy.matcher.ElementMatcher
ElementMatcher.Junction<S>
Nested classes/interfaces inherited from interface net.bytebuddy.matcher.ElementMatcher.Junction
ElementMatcher.Junction.AbstractBase<V>, ElementMatcher.Junction.Conjunction<W>, ElementMatcher.Junction.Disjunction<W>, ElementMatcher.Junction.ForNonNullValues<W>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final int
The maximum amount of entries in this map before removing a random entry from the map.Fields inherited from class net.bytebuddy.matcher.CachingMatcher
map
-
Constructor Summary
ConstructorsConstructorDescriptionWithInlineEviction
(ElementMatcher<? super S> matcher, ConcurrentMap<? super S, Boolean> map, int evictionSize) Creates a new caching matcher with inlined cache eviction. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
onCacheMiss
(S target) Invoked if the cache is not hit.Methods inherited from class net.bytebuddy.matcher.CachingMatcher
matches, toString
Methods inherited from class net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBase
and, or
-
Field Details
-
evictionSize
private final int evictionSizeThe maximum amount of entries in this map before removing a random entry from the map.
-
-
Constructor Details
-
WithInlineEviction
public WithInlineEviction(ElementMatcher<? super S> matcher, ConcurrentMap<? super S, Boolean> map, int evictionSize) Creates a new caching matcher with inlined cache eviction.- Parameters:
matcher
- The underlying matcher to apply for non-cached targets.map
- A map that serves as a cache for previous matches. This match is strongly referenced and can cause a memory leak if it is not evicted while keeping this matcher alive.evictionSize
- The maximum amount of entries in this map before removing a random entry from the map.
-
-
Method Details
-
onCacheMiss
Invoked if the cache is not hit.- Overrides:
onCacheMiss
in classCachingMatcher<S>
- Parameters:
target
- The element to be matched.- Returns:
true
if the element is matched.
-