Package org.springframework.cglib.core

# Class SpringNamingPolicy

java.lang.Object
org.springframework.cglib.core.SpringNamingPolicy

All Implemented Interfaces:
  `NamingPolicy`

public final class SpringNamingPolicy extends Object implements NamingPolicy
Custom variant of CGLIB's `DefaultNamingPolicy`, modifying the tag in generated class names from "EnhancerByCGLIB" etc to a "SpringCGLIB" tag and using a plain counter suffix instead of a hash code suffix (as of 6.0).

This allows for reliably discovering pre-generated Spring proxy classes in the classpath.

Since:
  3.2.8 / 6.0
Author:
  Juergen Hoeller, Sam Brannen

## Field Summary

Fields
Modifier and Type
Field
Description
`static final SpringNamingPolicy`
`INSTANCE`

## Method Summary

Modifier and Type
Method
Description
`String`
`getClassName(String prefix, String source, 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`

### Methods inherited from interface org.springframework.cglib.core.NamingPolicy

`equals`

## Field Details

### INSTANCE

public static final SpringNamingPolicy INSTANCE

## Method Details

### 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 "org.springframework.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