Package net.bytebuddy.dynamic.scaffold
Class MethodGraph.Compiler.Default.Key.Store.Entry.Resolved<U>
- java.lang.Object
-
- net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved<U>
-
- Type Parameters:
U
- The type of the harmonized key to determine method equality.
- All Implemented Interfaces:
MethodGraph.Compiler.Default.Key.Store.Entry<U>
- Enclosing interface:
- MethodGraph.Compiler.Default.Key.Store.Entry<W>
@Enhance public static class MethodGraph.Compiler.Default.Key.Store.Entry.Resolved<U> extends java.lang.Object implements MethodGraph.Compiler.Default.Key.Store.Entry<U>
An entry representing a non-ambiguous node resolution.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
MethodGraph.Compiler.Default.Key.Store.Entry.Resolved.Node
A node implementation representing a non-ambiguous method.-
Nested classes/interfaces inherited from interface net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry
MethodGraph.Compiler.Default.Key.Store.Entry.Ambiguous<U>, MethodGraph.Compiler.Default.Key.Store.Entry.Initial<U>, MethodGraph.Compiler.Default.Key.Store.Entry.Resolved<U>
-
-
Field Summary
Fields Modifier and Type Field Description private MethodGraph.Compiler.Default.Key.Harmonized<U>
key
The harmonized key this entry represents.private static int
MADE_VISIBLE
Indicates that a type's methods are already globally visible, meaning that a bridge method is not added with the intend of creating a visibility bridge.private boolean
madeVisible
true
if this entry's representative was made visible by a visibility bridge.private MethodDescription
methodDescription
The non-ambiguous, representative method of this entry.private static boolean
NOT_MADE_VISIBLE
Indicates that the entry was not made visible.private Visibility
visibility
The minimal required visibility for this method.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Resolved(MethodGraph.Compiler.Default.Key.Harmonized<U> key, MethodDescription methodDescription, Visibility visibility, boolean madeVisible)
Creates a new resolved entry.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description MethodGraph.Node
asNode(MethodGraph.Compiler.Default.Merger merger)
Transforms this entry into a node.MethodGraph.Compiler.Default.Key.Store.Entry<U>
extendBy(MethodDescription methodDescription, MethodGraph.Compiler.Default.Harmonizer<U> harmonizer)
Extends this entry by the given method.java.util.Set<MethodDescription>
getCandidates()
Returns all candidate methods represented by this entry.MethodGraph.Compiler.Default.Key.Harmonized<U>
getKey()
Returns the harmonized key of this entry.Visibility
getVisibility()
Returns the minimal visibility of this entry.MethodGraph.Compiler.Default.Key.Store.Entry<U>
inject(MethodGraph.Compiler.Default.Key.Harmonized<U> key, Visibility visibility)
Injects the given key into this entry.private static <V> MethodGraph.Compiler.Default.Key.Store.Entry<V>
of(MethodGraph.Compiler.Default.Key.Harmonized<V> key, MethodDescription override, MethodDescription original, Visibility visibility)
Creates an entry for an override where a method overrides another method within a super class.
-
-
-
Field Detail
-
MADE_VISIBLE
private static final int MADE_VISIBLE
Indicates that a type's methods are already globally visible, meaning that a bridge method is not added with the intend of creating a visibility bridge.- See Also:
- Constant Field Values
-
NOT_MADE_VISIBLE
private static final boolean NOT_MADE_VISIBLE
Indicates that the entry was not made visible.- See Also:
- Constant Field Values
-
key
private final MethodGraph.Compiler.Default.Key.Harmonized<U> key
The harmonized key this entry represents.
-
methodDescription
private final MethodDescription methodDescription
The non-ambiguous, representative method of this entry.
-
visibility
private final Visibility visibility
The minimal required visibility for this method.
-
madeVisible
private final boolean madeVisible
true
if this entry's representative was made visible by a visibility bridge.
-
-
Constructor Detail
-
Resolved
protected Resolved(MethodGraph.Compiler.Default.Key.Harmonized<U> key, MethodDescription methodDescription, Visibility visibility, boolean madeVisible)
Creates a new resolved entry.- Parameters:
key
- The harmonized key this entry represents.methodDescription
- The non-ambiguous, representative method of this entry.visibility
- The minimal required visibility for this method.madeVisible
-true
if this entry's representative was made visible by a visibility bridge.
-
-
Method Detail
-
of
private static <V> MethodGraph.Compiler.Default.Key.Store.Entry<V> of(MethodGraph.Compiler.Default.Key.Harmonized<V> key, MethodDescription override, MethodDescription original, Visibility visibility)
Creates an entry for an override where a method overrides another method within a super class.- Type Parameters:
V
- The type of the harmonized key to determine method equality.- Parameters:
key
- The merged key for both methods.override
- The method declared by the extending type, potentially a bridge method.original
- The method that is overridden by the extending type.visibility
- The minimal required visibility for this entry.- Returns:
- An entry representing the merger of both methods.
-
getKey
public MethodGraph.Compiler.Default.Key.Harmonized<U> getKey()
Returns the harmonized key of this entry.- Specified by:
getKey
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Returns:
- The harmonized key of this entry.
-
getCandidates
public java.util.Set<MethodDescription> getCandidates()
Returns all candidate methods represented by this entry.- Specified by:
getCandidates
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Returns:
- All candidate methods represented by this entry.
-
getVisibility
public Visibility getVisibility()
Returns the minimal visibility of this entry.- Specified by:
getVisibility
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Returns:
- The minimal visibility of this entry.
-
extendBy
public MethodGraph.Compiler.Default.Key.Store.Entry<U> extendBy(MethodDescription methodDescription, MethodGraph.Compiler.Default.Harmonizer<U> harmonizer)
Extends this entry by the given method.- Specified by:
extendBy
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Parameters:
methodDescription
- The method description to extend this entry with.harmonizer
- The harmonizer to use for determining method equality.- Returns:
- This key extended by the given method.
-
inject
public MethodGraph.Compiler.Default.Key.Store.Entry<U> inject(MethodGraph.Compiler.Default.Key.Harmonized<U> key, Visibility visibility)
Injects the given key into this entry.- Specified by:
inject
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Parameters:
key
- The key to inject into this entry.visibility
- The entry's minimal visibility.- Returns:
- This entry extended with the given key.
-
asNode
public MethodGraph.Node asNode(MethodGraph.Compiler.Default.Merger merger)
Transforms this entry into a node.- Specified by:
asNode
in interfaceMethodGraph.Compiler.Default.Key.Store.Entry<U>
- Parameters:
merger
- The merger to use for determining the representative method of an ambiguous node.- Returns:
- The resolved node.
-
-