public class DefaultNamingPolicy extends Object implements NamingPolicy
AbstractClassGenerator
.
Generates names such as
net.sf.cglib.Foo$$EnhancerByCGLIB$$38272841
This is composed of a prefix based on the name of the superclass, a fixed
string incorporating the CGLIB class responsible for generation, and a
hashcode derived from the parameters used to create the object. If the same
name has been previously been used in the same ClassLoader
, a
suffix is added to ensure uniqueness.
Modifier and Type | Field and Description |
---|---|
static DefaultNamingPolicy |
INSTANCE |
Constructor and Description |
---|
DefaultNamingPolicy() |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o)
The
NamingPolicy in use does not currently, but may
in the future, affect the caching of classes generated by AbstractClassGenerator , so this is a reminder that you should
correctly implement equals and hashCode
to avoid generating too many classes. |
String |
getClassName(String prefix,
String source,
Object key,
Predicate names)
Choose a name for a generated class.
|
protected String |
getTag()
Returns a string which is incorporated into every generated class name.
|
int |
hashCode() |
public static final DefaultNamingPolicy INSTANCE
public String getClassName(String prefix, String source, Object key, Predicate names)
NamingPolicy
getClassName
in interface NamingPolicy
prefix
- a dotted-name chosen by the generating class (possibly to put the generated class in a particular package)source
- the fully-qualified class name of the generating class (for example "net.sf.cglib.Enhancer")key
- A key object representing the state of the parameters; for caching to work properly, equal keys should result
in the same generated class name. The default policy incorporates key.hashCode()
into the class name.names
- a predicate that returns true if the given classname has already been used in the same ClassLoader.protected String getTag()
public boolean equals(Object o)
NamingPolicy
NamingPolicy
in use does not currently, but may
in the future, affect the caching of classes generated by AbstractClassGenerator
, so this is a reminder that you should
correctly implement equals
and hashCode
to avoid generating too many classes.equals
in interface NamingPolicy
equals
in class Object
Copyright © 2024. All rights reserved.