org.springframework.cglib.beans

## Class BeanMap.Generator

- java.lang.Object
- - org.springframework.cglib.core.AbstractClassGenerator
  - - org.springframework.cglib.beans.BeanMap.Generator

- All Implemented Interfaces:
    org.springframework.cglib.core.ClassGenerator
  Enclosing class:
    BeanMap

      public static class BeanMap.Generator
      extends AbstractClassGenerator

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.cglib.core.AbstractClassGenerator

      `AbstractClassGenerator.ClassLoaderData, AbstractClassGenerator.Source`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Generator()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `BeanMap` | `create()` Create a new instance of the `BeanMap`.
    `protected Object` | `firstInstance(Class type)`
    `void` | `generateClass(ClassVisitor v)`
    `protected ClassLoader` | `getDefaultClassLoader()`
    `protected ProtectionDomain` | `getProtectionDomain()` Returns the protection domain to use when defining the class.
    `protected Object` | `nextInstance(Object instance)`
    `void` | `setBean(Object bean)` Set the bean that the generated map should reflect.
    `void` | `setBeanClass(Class beanClass)` Set the class of the bean that the generated map should support.
    `void` | `setRequire(int require)` Limit the properties reflected by the generated map.

    - ### Methods inherited from class org.springframework.cglib.core.AbstractClassGenerator

      `create, generate, getAttemptLoad, getClassLoader, getClassName, getCurrent, getNamingPolicy, getStrategy, getUseCache, setAttemptLoad, setClassLoader, setContextClass, setNamePrefix, setNamingPolicy, setStrategy, setUseCache, unwrapCachedValue, wrapCachedClass`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Generator

          public Generator()

  - ### Method Detail

    - #### setBean

          public void setBean(Object bean)

      Set the bean that the generated map should reflect. The bean may be swapped out for another bean of the same type using `setBean(java.lang.Object)`. Calling this method overrides any value previously set using `setBeanClass(java.lang.Class)`. You must call either this method or `setBeanClass(java.lang.Class)` before `create()`.
      Parameters:
        `bean` - the initial bean

    - #### setBeanClass

          public void setBeanClass(Class beanClass)

      Set the class of the bean that the generated map should support. You must call either this method or `setBeanClass(java.lang.Class)` before `create()`.
      Parameters:
        `beanClass` - the class of the bean

    - #### setRequire

          public void setRequire(int require)

      Limit the properties reflected by the generated map.
      Parameters:
        `require` - any combination of `BeanMap.REQUIRE_GETTER` and `BeanMap.REQUIRE_SETTER`; default is zero (any property allowed)

    - #### getDefaultClassLoader

          protected ClassLoader getDefaultClassLoader()

      Specified by:
        `getDefaultClassLoader` in class `AbstractClassGenerator`

    - #### getProtectionDomain

          protected ProtectionDomain getProtectionDomain()

      Description copied from class: `AbstractClassGenerator`
      Returns the protection domain to use when defining the class.

      Default implementation returns `null` for using a default protection domain. Sub-classes may override to use a more specific protection domain.

      Overrides:
        `getProtectionDomain` in class `AbstractClassGenerator`
      Returns:
        the protection domain (`null` for using a default)

    - #### create

          public BeanMap create()

      Create a new instance of the `BeanMap`. An existing generated class will be reused if possible.

    - #### generateClass

          public void generateClass(ClassVisitor v)
                             throws Exception

      Throws:
        `Exception`

    - #### firstInstance

          protected Object firstInstance(Class type)

      Specified by:
        `firstInstance` in class `AbstractClassGenerator`

    - #### nextInstance

          protected Object nextInstance(Object instance)

      Specified by:
        `nextInstance` in class `AbstractClassGenerator`