java.lang.Object
org.eclipse.yasson.internal.model.ClassModel
A model for Java class.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final ClassCustomization
private final Class<?>
private Constructor<?>
private final AtomicBoolean
private final ClassModel
private Map<String,
PropertyModel> A map of all class properties, including properties from superclasses.private final jakarta.json.bind.config.PropertyNamingStrategy
private PropertyModel[]
Sorted properties according to sorting strategy. -
Constructor Summary
ConstructorsConstructorDescriptionClassModel
(Class<?> clazz, ClassCustomization customization, ClassModel parentClassModel, jakarta.json.bind.config.PropertyNamingStrategy propertyNamingStrategy) Create instance of class model. -
Method Summary
Modifier and TypeMethodDescriptionprivate boolean
equalsReadName
(String jsonName, PropertyModel propertyModel) Check if name is equal according to property strategy.findPropertyModelByJsonReadName
(String jsonReadName) Search for field in this class model and superclasses of its class.Introspected customization for a class.Constructor<?>
Default no argument constructor of the class used for deserialization.Class model of parent class if present.Get class properties copy, combination of field and its getter / setter, javabeans alike.getPropertyModel
(String name) Gets a property model by default (non customized) name.Get sorted class properties copy, combination of field and its getter / setter, javabeans alike.Class<?>
getType()
Gets type.private PropertyModel
searchProperty
(ClassModel classModel, String jsonReadName) void
setProperties
(List<PropertyModel> parsedProperties) Sets parsed properties of the class.toString()
-
Field Details
-
clazz
-
classCustomization
-
parentClassModel
-
isInitialized
-
defaultConstructor
-
properties
A map of all class properties, including properties from superclasses. Used to access by name. -
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
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
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
-
equalsReadName
Check if name is equal according to property strategy. In case ofStrategiesProvider.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
Gets type.- Returns:
- Type.
-
getClassCustomization
Introspected customization for a class.- Returns:
- Immutable class customization.
-
getParentClassModel
Class model of parent class if present.- Returns:
- class model of a parent
-
getSortedProperties
Get sorted class properties copy, combination of field and its getter / setter, javabeans alike.- Returns:
- sorted class properties.
-
setProperties
Sets parsed properties of the class.- Parameters:
parsedProperties
- class properties
-
getProperties
Get class properties copy, combination of field and its getter / setter, javabeans alike.- Returns:
- class properties.
-
getDefaultConstructor
Default no argument constructor of the class used for deserialization.- Returns:
- default constructor
-
toString
-