Class SetPropertyClass

java.lang.Object
org.apache.tomcat.util.xreflection.SetPropertyClass
All Implemented Interfaces:
Comparable<SetPropertyClass>

public final class SetPropertyClass extends Object implements Comparable<SetPropertyClass>
Represents a class in the reflection-based property setter/getter code generation system. Tracks properties, parent/child class relationships, and generates optimized reflection-free property access code.
  • Method Details

    • getChildren

      public Set<SetPropertyClass> getChildren()
      Returns the set of child classes registered under this class.
      Returns:
      the child classes
    • getProperties

      public Set<org.apache.tomcat.util.xreflection.ReflectionProperty> getProperties()
      Returns the set of reflection properties for this class.
      Returns:
      the reflection properties
    • getGenericSetPropertyMethod

      public Method getGenericSetPropertyMethod()
      Returns the generic setProperty method if one exists.
      Returns:
      the generic setProperty method, or null
    • getGenericGetPropertyMethod

      public Method getGenericGetPropertyMethod()
      Returns the generic getProperty method if one exists.
      Returns:
      the generic getProperty method, or null
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getParent

      public SetPropertyClass getParent()
      Returns the parent class.
      Returns:
      the parent class, or null if this is the root class
    • getClazz

      public Class<?> getClazz()
      Returns the Class represented by this instance.
      Returns:
      the represented class
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • addProperty

      public void addProperty(org.apache.tomcat.util.xreflection.ReflectionProperty property)
      Add a property to this class.
      Parameters:
      property - the property to add
    • generateSetPropertyMethod

      public String generateSetPropertyMethod(org.apache.tomcat.util.xreflection.ReflectionProperty property)
      Generate a Java code snippet to set the given property value.
      Parameters:
      property - the property to generate code for
      Returns:
      the generated code snippet, or null if no setter is available
    • generateGetPropertyMethod

      public String generateGetPropertyMethod(org.apache.tomcat.util.xreflection.ReflectionProperty property)
      Generate a Java code snippet to get the given property value.
      Parameters:
      property - the property to generate code for
      Returns:
      the generated code snippet, or null if no getter is available
    • generateSetPropertyForMethod

      public String generateSetPropertyForMethod()
      Generate a complete setProperty method for this class with switch-case statements for each known property.
      Returns:
      the generated Java source code
    • generateInvocationSetForPropertyCaseStatement

      public String generateInvocationSetForPropertyCaseStatement(int level)
      Generate a switch case statement that invokes the setProperty method for this class.
      Parameters:
      level - the indentation level
      Returns:
      the generated Java source code
    • generateParentSetPropertyForMethodInvocation

      public String generateParentSetPropertyForMethodInvocation()
      Generate a method invocation string for the setProperty method of this class, suitable for use from a parent class.
      Returns:
      the generated method invocation string
    • generatesSetPropertyForMethodHeader

      public String generatesSetPropertyForMethodHeader()
      Generate the method header for the setProperty method for this class.
      Returns:
      the generated method header string
    • generateInvocationGetForPropertyCaseStatement

      public String generateInvocationGetForPropertyCaseStatement(int level)
      Generate a switch case statement that invokes the getProperty method for this class.
      Parameters:
      level - the indentation level
      Returns:
      the generated Java source code
    • generateParentGetPropertyForMethodInvocation

      public String generateParentGetPropertyForMethodInvocation()
      Generate a method invocation string for the getProperty method of this class, suitable for use from a parent class.
      Returns:
      the generated method invocation string
    • generatesGetPropertyForMethodHeader

      public String generatesGetPropertyForMethodHeader()
      Generate the method header for the getProperty method for this class.
      Returns:
      the generated method header string
    • generateGetPropertyForMethod

      public String generateGetPropertyForMethod()
      Generate a complete getProperty method for this class with switch-case statements for each known property.
      Returns:
      the generated Java source code
    • compareTo

      public int compareTo(SetPropertyClass o)
      Specified by:
      compareTo in interface Comparable<SetPropertyClass>