Class PropertyWriter
java.lang.Object
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.ser.PropertyWriter
- All Implemented Interfaces:
BeanProperty
,Named
,Serializable
- Direct Known Subclasses:
BeanPropertyWriter
,MapProperty
Base class for writers used to output property values (name-value pairs)
as key/value pairs via streaming API. This is the most generic abstraction
implemented by both POJO and
Map
serializers, and invoked
by filtering functionality.- Since:
- 2.3
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.BeanProperty
BeanProperty.Bogus, BeanProperty.Std
-
Field Summary
Fields inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
_aliases, _metadata
Fields inherited from interface edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.BeanProperty
EMPTY_FORMAT, EMPTY_INCLUDE
-
Constructor Summary
ModifierConstructorDescriptionprotected
PropertyWriter
(BeanPropertyDefinition propDef) protected
protected
PropertyWriter
(PropertyWriter base) -
Method Summary
Modifier and TypeMethodDescriptionabstract void
depositSchemaProperty
(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) Traversal method used for things like JSON Schema generation, or POJO introspection.abstract void
depositSchemaProperty
(ObjectNode propertiesNode, SerializerProvider provider) Deprecated.Since 2.2<A extends Annotation>
AfindAnnotation
(Class<A> acls) Convenience method for accessing annotation that may be associated either directly on property, or, if not, via enclosing class (context).abstract <A extends Annotation>
AgetAnnotation
(Class<A> acls) Method for accessing annotations directly declared for property that this writer is associated with.abstract <A extends Annotation>
AgetContextAnnotation
(Class<A> acls) Method for accessing annotations declared in context of the property that this writer is associated with; usually this means annotations on enclosing class for property.abstract PropertyName
Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).abstract String
getName()
Method to get logical name of the propertyabstract void
serializeAsElement
(Object value, JsonGenerator jgen, SerializerProvider provider) Serialization method called when output is to be done as an array, that is, not using property names.abstract void
serializeAsField
(Object value, JsonGenerator jgen, SerializerProvider provider) The main serialization method called by filter when property is to be written normally.abstract void
serializeAsOmittedField
(Object value, JsonGenerator jgen, SerializerProvider provider) Serialization method that filter needs to call in cases where property is to be filtered, but the underlying data format requires a placeholder of some kind.abstract void
serializeAsPlaceholder
(Object value, JsonGenerator jgen, SerializerProvider provider) Serialization method called when doing tabular (positional) output from databind, but then value is to be omitted.Methods inherited from class edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.introspect.ConcreteBeanPropertyBase
findAliases, findFormatOverrides, findPropertyFormat, findPropertyInclusion, getMetadata, isRequired, isVirtual
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.BeanProperty
getMember, getType, getWrapperName
-
Constructor Details
-
PropertyWriter
-
PropertyWriter
-
PropertyWriter
-
-
Method Details
-
getName
Description copied from interface:BeanProperty
Method to get logical name of the property- Specified by:
getName
in interfaceBeanProperty
- Specified by:
getName
in interfaceNamed
-
getFullName
Description copied from interface:BeanProperty
Method for getting full name definition, including possible format-specific additional properties (such as namespace when using XML backend).- Specified by:
getFullName
in interfaceBeanProperty
-
findAnnotation
Convenience method for accessing annotation that may be associated either directly on property, or, if not, via enclosing class (context). This allows adding baseline contextual annotations, for example, by adding an annotation for a given class and making that apply to all properties unless overridden by per-property annotations.This method is functionally equivalent to:
MyAnnotation ann = propWriter.getAnnotation(MyAnnotation.class); if (ann == null) { ann = propWriter.getContextAnnotation(MyAnnotation.class); }
that is, tries to find a property annotation first, but if one is not found, tries to find context-annotation (from enclosing class) of same type.- Since:
- 2.5
-
getAnnotation
Method for accessing annotations directly declared for property that this writer is associated with.- Specified by:
getAnnotation
in interfaceBeanProperty
- Since:
- 2.5
-
getContextAnnotation
Method for accessing annotations declared in context of the property that this writer is associated with; usually this means annotations on enclosing class for property.- Specified by:
getContextAnnotation
in interfaceBeanProperty
- Since:
- 2.5
-
serializeAsField
public abstract void serializeAsField(Object value, JsonGenerator jgen, SerializerProvider provider) throws Exception The main serialization method called by filter when property is to be written normally.- Throws:
Exception
-
serializeAsOmittedField
public abstract void serializeAsOmittedField(Object value, JsonGenerator jgen, SerializerProvider provider) throws Exception Serialization method that filter needs to call in cases where property is to be filtered, but the underlying data format requires a placeholder of some kind. This is usually the case for tabular (positional) data formats such as CSV.- Throws:
Exception
-
serializeAsElement
public abstract void serializeAsElement(Object value, JsonGenerator jgen, SerializerProvider provider) throws Exception Serialization method called when output is to be done as an array, that is, not using property names. This is needed when serializing container (Collection
, array) types, or POJOs usingtabular
("as array") output format.Note that this mode of operation is independent of underlying data format; so it is typically NOT called for fully tabular formats such as CSV, where logical output is still as form of POJOs.
- Throws:
Exception
-
serializeAsPlaceholder
public abstract void serializeAsPlaceholder(Object value, JsonGenerator jgen, SerializerProvider provider) throws Exception Serialization method called when doing tabular (positional) output from databind, but then value is to be omitted. This requires output of a placeholder value of some sort; often similar toserializeAsOmittedField(java.lang.Object, edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.core.JsonGenerator, edu.internet2.middleware.grouperClientExt.com.fasterxml.jackson.databind.SerializerProvider)
.- Throws:
Exception
-
depositSchemaProperty
public abstract void depositSchemaProperty(JsonObjectFormatVisitor objectVisitor, SerializerProvider provider) throws JsonMappingException Traversal method used for things like JSON Schema generation, or POJO introspection.- Specified by:
depositSchemaProperty
in interfaceBeanProperty
- Parameters:
objectVisitor
- Visitor to used as the callback handler- Throws:
JsonMappingException
-
depositSchemaProperty
@Deprecated public abstract void depositSchemaProperty(ObjectNode propertiesNode, SerializerProvider provider) throws JsonMappingException Deprecated.Since 2.2Legacy method called for JSON Schema generation; should not be called by new code- Throws:
JsonMappingException
-