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

Modifier and Type
Method
Description
`void`
`addProperty(org.apache.tomcat.util.xreflection.ReflectionProperty property)`
Add a property to this class.
`int`
`compareTo(SetPropertyClass o)`
`boolean`
`equals(Object o)`
`String`
`generateGetPropertyForMethod()`
Generate a complete getProperty method for this class with switch-case statements for each known property.
`String`
`generateGetPropertyMethod(org.apache.tomcat.util.xreflection.ReflectionProperty property)`
Generate a Java code snippet to get the given property value.
`String`
`generateInvocationGetForPropertyCaseStatement(int level)`
Generate a switch case statement that invokes the getProperty method for this class.
`String`
`generateInvocationSetForPropertyCaseStatement(int level)`
Generate a switch case statement that invokes the setProperty method for this class.
`String`
`generateParentGetPropertyForMethodInvocation()`
Generate a method invocation string for the getProperty method of this class, suitable for use from a parent class.
`String`
`generateParentSetPropertyForMethodInvocation()`
Generate a method invocation string for the setProperty method of this class, suitable for use from a parent class.
`String`
`generateSetPropertyForMethod()`
Generate a complete setProperty method for this class with switch-case statements for each known property.
`String`
`generateSetPropertyMethod(org.apache.tomcat.util.xreflection.ReflectionProperty property)`
Generate a Java code snippet to set the given property value.
`String`
`generatesGetPropertyForMethodHeader()`
Generate the method header for the getProperty method for this class.
`String`
`generatesSetPropertyForMethodHeader()`
Generate the method header for the setProperty method for this class.
`Set<SetPropertyClass>`
`getChildren()`
Returns the set of child classes registered under this class.
`Class<?>`
`getClazz()`
Returns the `Class` represented by this instance.
`Method`
`getGenericGetPropertyMethod()`
Returns the generic getProperty method if one exists.
`Method`
`getGenericSetPropertyMethod()`
Returns the generic setProperty method if one exists.
`SetPropertyClass`
`getParent()`
Returns the parent class.
`Set<org.apache.tomcat.util.xreflection.ReflectionProperty>`
`getProperties()`
Returns the set of reflection properties for this class.
`int`
`hashCode()`
`String`
`toString()`

### Methods inherited from class Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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