Package net.bytebuddy
Class NamingStrategy.SuffixingRandom
- java.lang.Object
-
- net.bytebuddy.NamingStrategy.AbstractBase
-
- net.bytebuddy.NamingStrategy.SuffixingRandom
-
- All Implemented Interfaces:
NamingStrategy
- Enclosing interface:
- NamingStrategy
@Enhance public static class NamingStrategy.SuffixingRandom extends NamingStrategy.AbstractBase
A naming strategy that creates a name by concatenating:- The super classes package and name
- A given suffix string
- A random number
$
sign is included into the name to improve readability. As an exception, types that subclass classes from thejava.**
packages are prefixed with a given package. This is necessary as it is illegal to define non-bootstrap classes in this name space. The same strategy is applied when subclassing a signed type which is equally illegal.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
NamingStrategy.SuffixingRandom.BaseNameResolver
A base name resolver is responsible for resolving a name onto which the suffix is appended.-
Nested classes/interfaces inherited from interface net.bytebuddy.NamingStrategy
NamingStrategy.AbstractBase, NamingStrategy.PrefixingRandom, NamingStrategy.SuffixingRandom
-
-
Field Summary
Fields Modifier and Type Field Description static String
BYTE_BUDDY_RENAME_PACKAGE
The default package for defining types that are renamed to not be contained in theJAVA_PACKAGE
package.static String
NO_PREFIX
Indicates that types of thejava.*
package should not be prefixed.
-
Constructor Summary
Constructors Constructor Description SuffixingRandom(String suffix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace.SuffixingRandom(String suffix, String javaLangPackagePrefix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace.SuffixingRandom(String suffix, NamingStrategy.SuffixingRandom.BaseNameResolver baseNameResolver)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace.SuffixingRandom(String suffix, NamingStrategy.SuffixingRandom.BaseNameResolver baseNameResolver, String javaLangPackagePrefix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into a given namespace.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
name(TypeDescription superClass)
Determines a new name when creating a new type that subclasses the provided type.-
Methods inherited from class net.bytebuddy.NamingStrategy.AbstractBase
rebase, redefine, subclass
-
-
-
-
Field Detail
-
BYTE_BUDDY_RENAME_PACKAGE
public static final String BYTE_BUDDY_RENAME_PACKAGE
The default package for defining types that are renamed to not be contained in theJAVA_PACKAGE
package.- See Also:
- Constant Field Values
-
NO_PREFIX
public static final String NO_PREFIX
Indicates that types of thejava.*
package should not be prefixed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SuffixingRandom
public SuffixingRandom(String suffix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace. All names are derived from the unnamed type's super type.- Parameters:
suffix
- The suffix for the generated class.
-
SuffixingRandom
public SuffixingRandom(String suffix, String javaLangPackagePrefix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace.- Parameters:
suffix
- The suffix for the generated class.javaLangPackagePrefix
- The fallback namespace for type's that subclass types within thejava.*
namespace. If The prefix is set to the empty string, no prefix is added.
-
SuffixingRandom
public SuffixingRandom(String suffix, NamingStrategy.SuffixingRandom.BaseNameResolver baseNameResolver)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into Byte Buddy's package namespace.- Parameters:
suffix
- The suffix for the generated class.baseNameResolver
- The base name resolver that is queried for locating the base name.
-
SuffixingRandom
public SuffixingRandom(String suffix, NamingStrategy.SuffixingRandom.BaseNameResolver baseNameResolver, String javaLangPackagePrefix)
Creates an immutable naming strategy with a given suffix but moves types that subclass types within thejava.lang
package into a given namespace.- Parameters:
suffix
- The suffix for the generated class.baseNameResolver
- The base name resolver that is queried for locating the base name.javaLangPackagePrefix
- The fallback namespace for type's that subclass types within thejava.*
namespace. If The prefix is set to the empty string, no prefix is added.
-
-
Method Detail
-
name
protected String name(TypeDescription superClass)
Description copied from class:NamingStrategy.AbstractBase
Determines a new name when creating a new type that subclasses the provided type.- Specified by:
name
in classNamingStrategy.AbstractBase
- Parameters:
superClass
- The super type of the created type.- Returns:
- The name of the dynamic type.
-
-