Class ClassNameGenerator

java.lang.Object
org.springframework.aot.generate.ClassNameGenerator

public final class ClassNameGenerator extends Object
Generate unique class names based on a target ClassName and a feature name.

This class is stateful, so the same instance should be used for all name generation.

Since:
6.0
Author:
Phillip Webb, Stephane Nicoll
  • Constructor Summary

    Constructors
    Constructor
    Description
    ClassNameGenerator(org.springframework.javapoet.ClassName defaultTarget)
    Create a new instance using the specified defaultTarget and no feature name prefix.
    ClassNameGenerator(org.springframework.javapoet.ClassName defaultTarget, String featureNamePrefix)
    Create a new instance using the specified defaultTarget and feature name prefix.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.springframework.javapoet.ClassName
    generateClassName(String featureName, org.springframework.javapoet.ClassName target)
    Generate a unique ClassName based on the specified featureName and target.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ClassNameGenerator

      public ClassNameGenerator(org.springframework.javapoet.ClassName defaultTarget)
      Create a new instance using the specified defaultTarget and no feature name prefix.
      Parameters:
      defaultTarget - the default target class to use
    • ClassNameGenerator

      public ClassNameGenerator(org.springframework.javapoet.ClassName defaultTarget, String featureNamePrefix)
      Create a new instance using the specified defaultTarget and feature name prefix.
      Parameters:
      defaultTarget - the default target class to use
      featureNamePrefix - the prefix to use to qualify feature names
  • Method Details

    • generateClassName

      public org.springframework.javapoet.ClassName generateClassName(String featureName, @Nullable org.springframework.javapoet.ClassName target)
      Generate a unique ClassName based on the specified featureName and target. If the target is null, the configured main target of this instance is used.

      The class name is a suffixed version of the target. For instance, a com.example.Demo target with an Initializer feature name leads to a com.example.Demo__Initializer generated class name. The feature name is qualified by the configured feature name prefix, if any.

      Generated class names are unique. If such a feature was already requested for this target, a counter is used to ensure uniqueness.

      Parameters:
      featureName - the name of the feature that the generated class supports
      target - the class the newly generated class relates to, or null to use the main target
      Returns:
      a unique generated class name