Class ClassModel

java.lang.Object
org.eclipse.yasson.internal.model.ClassModel

public class ClassModel extends Object
A model for Java class.
  • Field Details

    • clazz

      private final Class<?> clazz
    • classCustomization

      private final ClassCustomization classCustomization
    • parentClassModel

      private final ClassModel parentClassModel
    • isInitialized

      private final AtomicBoolean isInitialized
    • defaultConstructor

      private Constructor<?> defaultConstructor
    • properties

      private Map<String,PropertyModel> properties
      A map of all class properties, including properties from superclasses. Used to access by name.
    • sortedProperties

      private PropertyModel[] sortedProperties
      Sorted properties according to sorting strategy. Used for serialization property ordering.
    • propertyNamingStrategy

      private final jakarta.json.bind.config.PropertyNamingStrategy propertyNamingStrategy
  • Constructor Details

    • ClassModel

      public ClassModel(Class<?> clazz, ClassCustomization customization, ClassModel parentClassModel, jakarta.json.bind.config.PropertyNamingStrategy propertyNamingStrategy)
      Create instance of class model.
      Parameters:
      clazz - Class to model.
      customization - Customization of the class parsed from annotations.
      parentClassModel - Class model of parent class.
      propertyNamingStrategy - Property naming strategy.
  • Method Details

    • getPropertyModel

      public PropertyModel getPropertyModel(String name)
      Gets a property model by default (non customized) name.
      Parameters:
      name - A name as parsed from field / getter / setter without annotation customizing.
      Returns:
      Property model.
    • findPropertyModelByJsonReadName

      public PropertyModel findPropertyModelByJsonReadName(String jsonReadName)
      Search for field in this class model and superclasses of its class.
      Parameters:
      jsonReadName - name as it appears in JSON during reading.
      Returns:
      PropertyModel if found.
    • searchProperty

      private PropertyModel searchProperty(ClassModel classModel, String jsonReadName)
    • equalsReadName

      private boolean equalsReadName(String jsonName, PropertyModel propertyModel)
      Check if name is equal according to property strategy. In case of StrategiesProvider.CASE_INSENSITIVE_STRATEGY ignore case. User can provide own strategy implementation, cast to custom interface is not an option.
      Returns:
      True if names are equal.
    • getType

      public Class<?> getType()
      Gets type.
      Returns:
      Type.
    • getClassCustomization

      public ClassCustomization getClassCustomization()
      Introspected customization for a class.
      Returns:
      Immutable class customization.
    • getParentClassModel

      public ClassModel getParentClassModel()
      Class model of parent class if present.
      Returns:
      class model of a parent
    • getSortedProperties

      public PropertyModel[] getSortedProperties()
      Get sorted class properties copy, combination of field and its getter / setter, javabeans alike.
      Returns:
      sorted class properties.
    • setProperties

      public void setProperties(List<PropertyModel> parsedProperties)
      Sets parsed properties of the class.
      Parameters:
      parsedProperties - class properties
    • getProperties

      public Map<String,PropertyModel> getProperties()
      Get class properties copy, combination of field and its getter / setter, javabeans alike.
      Returns:
      class properties.
    • getDefaultConstructor

      public Constructor<?> getDefaultConstructor()
      Default no argument constructor of the class used for deserialization.
      Returns:
      default constructor
    • toString

      public String toString()
      Overrides:
      toString in class Object