DefaultNamingPolicy (cglib (Version 2.2.2))
Date: 2024-01-11

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sf.cglib.core
Class DefaultNamingPolicy

    java.lang.Object
      net.sf.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

`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.

Field Summary
`static DefaultNamingPolicy` | `INSTANCE`

Constructor Summary
`DefaultNamingPolicy()`

Method Summary
`boolean` | `equals(java.lang.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.
`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.
`int` | `hashCode()`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### INSTANCE

    public static final DefaultNamingPolicy INSTANCE

Constructor Detail

### DefaultNamingPolicy

    public DefaultNamingPolicy()

Method Detail

### 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 "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

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `java.lang.Object`

### equals

    public boolean equals(java.lang.Object o)

  Description copied from interface: `NamingPolicy`
  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.

  Specified by:
    `equals` in interface `NamingPolicy`
  Overrides:
    `equals` in class `java.lang.Object`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2001 - Apache Software Foundation