public interface Annotator
Annotators that need the generation configuration should add a constructor
with GenerationConfig
arg. Annotators that don't need the
configuration need only add a default constructor.
Modifier and Type | Method and Description |
---|---|
void |
additionalPropertiesField(com.sun.codemodel.JFieldVar field,
com.sun.codemodel.JDefinedClass clazz,
String propertyName) |
void |
anyGetter(com.sun.codemodel.JMethod getter,
com.sun.codemodel.JDefinedClass clazz)
Add the necessary annotation to mark a Java method as the getter for
additional JSON property values that do not match any of the other
property names found in the bean.
|
void |
anySetter(com.sun.codemodel.JMethod setter,
com.sun.codemodel.JDefinedClass clazz)
Add the necessary annotation to mark a Java method as the setter for
additional JSON property values that do not match any of the other
property names found in the bean.
|
void |
dateField(com.sun.codemodel.JFieldVar field,
com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode propertyNode)
Add the necessary annotations to a date field.
|
void |
dateTimeField(com.sun.codemodel.JFieldVar field,
com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode propertyNode)
Add the necessary annotations to a date-time field.
|
void |
enumConstant(com.sun.codemodel.JDefinedClass _enum,
com.sun.codemodel.JEnumConstant constant,
String value)
Add the necessary annotations to an enum constant.
|
void |
enumCreatorMethod(com.sun.codemodel.JDefinedClass _enum,
com.sun.codemodel.JMethod creatorMethod)
Add the necessary annotation to mark a static Java method as the
creator/factory method which can choose the correct Java enum value for a
given JSON value during deserialization.
|
void |
enumValueMethod(com.sun.codemodel.JDefinedClass _enum,
com.sun.codemodel.JMethod valueMethod)
Add the necessary annotation to mark a Java method as the value method
that is used to turn a Java enum value into a JSON value during
serialization.
|
boolean |
isAdditionalPropertiesSupported()
Indicates whether the annotation style that this annotator uses can
support the JSON Schema 'additionalProperties' feature.
|
boolean |
isPolymorphicDeserializationSupported(com.fasterxml.jackson.databind.JsonNode node) |
void |
propertyField(com.sun.codemodel.JFieldVar field,
com.sun.codemodel.JDefinedClass clazz,
String propertyName,
com.fasterxml.jackson.databind.JsonNode propertyNode)
Add the necessary annotation to mark a Java field as a JSON property
|
void |
propertyGetter(com.sun.codemodel.JMethod getter,
com.sun.codemodel.JDefinedClass clazz,
String propertyName)
Add the necessary annotation to mark a Java method as the getter for a
JSON property
|
void |
propertyInclusion(com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode schema)
Add the necessary annotation to cause only non-null values to be included
during serialization.
|
void |
propertyOrder(com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode propertiesNode)
Add the necessary annotation to dictate correct property order during
serialization
|
void |
propertySetter(com.sun.codemodel.JMethod setter,
com.sun.codemodel.JDefinedClass clazz,
String propertyName)
Add the necessary annotation to mark a Java method as the setter for a
JSON property
|
void |
timeField(com.sun.codemodel.JFieldVar field,
com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode propertyNode)
Add the necessary annotations to a time field.
|
void |
typeInfo(com.sun.codemodel.JDefinedClass clazz,
com.fasterxml.jackson.databind.JsonNode schema)
Add the necessary annotation to dictate correct type information during
serialization and deserialization; often required with polymorphic types.
|
void typeInfo(com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode schema)
clazz
- a generated pojo class, that is serialized to JSONschema
- the object schema associated with this clazzvoid propertyOrder(com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode propertiesNode)
clazz
- a generated pojo class, that is serialized to JSONpropertiesNode
- the properties to be orderedvoid propertyInclusion(com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode schema)
clazz
- a generated pojo class, that is serialized to JSONschema
- the object schema associated with this clazzvoid propertyField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, String propertyName, com.fasterxml.jackson.databind.JsonNode propertyNode)
field
- the field that contains data that will be serializedclazz
- the owner of the field (class to which the field belongs)propertyName
- the name of the JSON property that this field representspropertyNode
- the schema node defining this propertyvoid propertyGetter(com.sun.codemodel.JMethod getter, com.sun.codemodel.JDefinedClass clazz, String propertyName)
getter
- the method that will be used to get the value of the given
JSON propertypropertyName
- the name of the JSON property that this getter getsvoid propertySetter(com.sun.codemodel.JMethod setter, com.sun.codemodel.JDefinedClass clazz, String propertyName)
setter
- the method that will be used to set the value of the given
JSON propertypropertyName
- the name of the JSON property that this setter setsvoid anyGetter(com.sun.codemodel.JMethod getter, com.sun.codemodel.JDefinedClass clazz)
getter
- the method that will be used to get the values of additional
propertiesvoid anySetter(com.sun.codemodel.JMethod setter, com.sun.codemodel.JDefinedClass clazz)
setter
- the method that will be used to set the values of additional
propertiesvoid enumCreatorMethod(com.sun.codemodel.JDefinedClass _enum, com.sun.codemodel.JMethod creatorMethod)
creatorMethod
- the method that can create a Java enum value from a JSON valuevoid enumValueMethod(com.sun.codemodel.JDefinedClass _enum, com.sun.codemodel.JMethod valueMethod)
valueMethod
- the enum instance method that can create a JSON value during
serializationvoid enumConstant(com.sun.codemodel.JDefinedClass _enum, com.sun.codemodel.JEnumConstant constant, String value)
boolean isAdditionalPropertiesSupported()
Jackson is able to use it's JsonAnyGetter
and
JsonAnySetter
features for this purpose, hence for Jackson
annotators, this method will return true
. Gson does not
support 'additional' property values (they are silently discarded at
deserialization time), hence for Gson annotators, this method would
return false
. Moshi 1.x behaves similar to Gson and therefore
returns false
.
void dateTimeField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode propertyNode)
field
- the field that contains data that will be serializedpropertyNode
- the schema node defining this propertyvoid dateField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode propertyNode)
field
- the field that contains data that will be serializedpropertyNode
- the schema node defining this propertyvoid timeField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode propertyNode)
field
- the field that contains data that will be serializedpropertyNode
- the schema node defining this propertyvoid additionalPropertiesField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, String propertyName)
boolean isPolymorphicDeserializationSupported(com.fasterxml.jackson.databind.JsonNode node)
Copyright © 2022. All rights reserved.