net.sf.cglib.core
Class DefaultNamingPolicy
java.lang.Object
net.sf.cglib.core.DefaultNamingPolicy
- All Implemented Interfaces:
- NamingPolicy
public class DefaultNamingPolicy
- extends Object
- implements NamingPolicy
The default policy used by 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.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
INSTANCE
public static final DefaultNamingPolicy INSTANCE
DefaultNamingPolicy
public DefaultNamingPolicy()
getClassName
public String getClassName(String prefix,
String source,
Object key,
Predicate names)
- Description copied from interface:
NamingPolicy
- Choose a name for a generated class.
- Specified by:
getClassName in interface NamingPolicy
- Parameters:
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.
- Returns:
- the fully-qualified class name
getTag
protected String getTag()
- Returns a string which is incorporated into every generated class name.
By default returns "ByCGLIB"
Copyright © 2012 Oracle Corporation. All Rights Reserved.