Package net.bytebuddy.dynamic.scaffold
Class MethodGraph.Compiler.Default.Key.Store.Entry.Ambiguous<U>
- java.lang.Object
-
- net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Ambiguous<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.Ambiguous<U> extends java.lang.Object implements MethodGraph.Compiler.Default.Key.Store.Entry<U>
An entry representing an ambiguous node resolution.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
MethodGraph.Compiler.Default.Key.Store.Entry.Ambiguous.Node
A node implementation representing an ambiguous method resolution.-
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 java.util.LinkedHashSet<MethodDescription>
methodDescriptions
A set of ambiguous methods that this entry represents.private Visibility
visibility
The minimal required visibility for this method.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Ambiguous(MethodGraph.Compiler.Default.Key.Harmonized<U> key, java.util.LinkedHashSet<MethodDescription> methodDescriptions, Visibility visibility)
Creates a new ambiguous 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.protected static <Q> MethodGraph.Compiler.Default.Key.Store.Entry<Q>
of(MethodGraph.Compiler.Default.Key.Harmonized<Q> key, MethodDescription left, MethodDescription right, Visibility visibility)
Creates a new ambiguous entry if both provided entries are not considered to be a bridge of one another.
-
-
-
Field Detail
-
key
private final MethodGraph.Compiler.Default.Key.Harmonized<U> key
The harmonized key this entry represents.
-
methodDescriptions
private final java.util.LinkedHashSet<MethodDescription> methodDescriptions
A set of ambiguous methods that this entry represents.
-
visibility
private final Visibility visibility
The minimal required visibility for this method.
-
-
Constructor Detail
-
Ambiguous
protected Ambiguous(MethodGraph.Compiler.Default.Key.Harmonized<U> key, java.util.LinkedHashSet<MethodDescription> methodDescriptions, Visibility visibility)
Creates a new ambiguous entry.- Parameters:
key
- The harmonized key this entry represents.methodDescriptions
- A set of ambiguous methods that this entry represents.visibility
- The minimal required visibility for this method.
-
-
Method Detail
-
of
protected static <Q> MethodGraph.Compiler.Default.Key.Store.Entry<Q> of(MethodGraph.Compiler.Default.Key.Harmonized<Q> key, MethodDescription left, MethodDescription right, Visibility visibility)
Creates a new ambiguous entry if both provided entries are not considered to be a bridge of one another.- Type Parameters:
Q
- The type of the token of the harmonized key to determine method equality.- Parameters:
key
- The key of the entry to be created.left
- The left method to be considered.right
- The right method to be considered.visibility
- The entry's minimal visibility.- Returns:
- The entry representing 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.
-
-