public class Jackson1Annotator extends AbstractAnnotator
Constructor and Description |
---|
Jackson1Annotator(GenerationConfig generationConfig) |
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)
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)
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 |
enumCreatorMethod(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.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.
|
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,
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,
String propertyName)
Add the necessary annotation to mark a Java method as the setter for a
JSON property
|
dateField, dateTimeField, enumConstant, getGenerationConfig, timeField
public Jackson1Annotator(GenerationConfig generationConfig)
public void propertyOrder(com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode propertiesNode)
Annotator
propertyOrder
in interface Annotator
propertyOrder
in class AbstractAnnotator
clazz
- a generated pojo class, that is serialized to JSONpropertiesNode
- the properties to be orderedpublic void propertyInclusion(com.sun.codemodel.JDefinedClass clazz, com.fasterxml.jackson.databind.JsonNode schema)
Annotator
propertyInclusion
in interface Annotator
propertyInclusion
in class AbstractAnnotator
clazz
- a generated pojo class, that is serialized to JSONschema
- the object schema associated with this clazzpublic void propertyField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, String propertyName, com.fasterxml.jackson.databind.JsonNode propertyNode)
Annotator
propertyField
in interface Annotator
propertyField
in class AbstractAnnotator
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 propertypublic void propertyGetter(com.sun.codemodel.JMethod getter, String propertyName)
Annotator
propertyGetter
in interface Annotator
propertyGetter
in class AbstractAnnotator
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 getspublic void propertySetter(com.sun.codemodel.JMethod setter, String propertyName)
Annotator
propertySetter
in interface Annotator
propertySetter
in class AbstractAnnotator
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 setspublic void anyGetter(com.sun.codemodel.JMethod getter)
Annotator
anyGetter
in interface Annotator
anyGetter
in class AbstractAnnotator
getter
- the method that will be used to get the values of additional
propertiespublic void anySetter(com.sun.codemodel.JMethod setter)
Annotator
anySetter
in interface Annotator
anySetter
in class AbstractAnnotator
setter
- the method that will be used to set the values of additional
propertiespublic void enumCreatorMethod(com.sun.codemodel.JMethod creatorMethod)
Annotator
enumCreatorMethod
in interface Annotator
enumCreatorMethod
in class AbstractAnnotator
creatorMethod
- the method that can create a Java enum value from a JSON valuepublic void enumValueMethod(com.sun.codemodel.JMethod valueMethod)
Annotator
enumValueMethod
in interface Annotator
enumValueMethod
in class AbstractAnnotator
valueMethod
- the enum instance method that can create a JSON value during
serializationpublic boolean isAdditionalPropertiesSupported()
Annotator
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
.
isAdditionalPropertiesSupported
in interface Annotator
isAdditionalPropertiesSupported
in class AbstractAnnotator
public void additionalPropertiesField(com.sun.codemodel.JFieldVar field, com.sun.codemodel.JDefinedClass clazz, String propertyName)
additionalPropertiesField
in interface Annotator
additionalPropertiesField
in class AbstractAnnotator
Copyright © 2017. All rights reserved.