org.logicalcobwebs.cglib.core
Class DefaultNamingPolicy
java.lang.Object
org.logicalcobwebs.cglib.core.DefaultNamingPolicy
- All Implemented Interfaces:
- NamingPolicy
public class DefaultNamingPolicy
- extends java.lang.Object
- implements NamingPolicy
The default policy used by AbstractClassGenerator
.
Generates names such as
org.logicalcobwebs.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.
Method Summary |
java.lang.String |
getClassName(java.lang.String prefix,
java.lang.String source,
java.lang.Object key,
Predicate names)
Choose a name for a generated class. |
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 java.lang.String getClassName(java.lang.String prefix,
java.lang.String source,
java.lang.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 "org.logicalcobwebs.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