- java.lang.Object
-
- org.apache.johnzon.mapper.MappingGeneratorImpl
-
- All Implemented Interfaces:
MappingGenerator
public class MappingGeneratorImpl extends java.lang.Object implements MappingGenerator
-
-
Field Summary
Fields Modifier and Type Field Description private MapperConfig
config
private jakarta.json.stream.JsonGenerator
generator
private java.util.Map<java.lang.Object,java.lang.String>
jsonPointers
private Mappings
mappings
-
Constructor Summary
Constructors Constructor Description MappingGeneratorImpl(MapperConfig config, jakarta.json.stream.JsonGenerator jsonGenerator, Mappings mappings)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private <T> java.lang.Object
doConvertFrom(T value, Adapter<T,java.lang.Object> converter)
private <T> void
doWriteIterable(java.lang.Iterable<T> object, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
void
doWriteObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator, boolean writeBody, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
private boolean
doWriteObjectBody(java.lang.Object object, java.util.Collection<java.lang.String> ignored, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator)
jakarta.json.stream.JsonGenerator
getJsonGenerator()
private boolean
isDedup()
private static boolean
isFloat(java.lang.Class<?> type)
private boolean
isInJsRange(java.lang.Number longValue)
private static boolean
isInt(java.lang.Class<?> type)
private void
writeArray(java.lang.Class<?> type, Adapter itemConverter, java.lang.String key, java.lang.Object arrayValue, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
Write a JSON Array with a given Array Value, like byte[], int[], Person[] etc.private void
writeItem(java.lang.Object o, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
private void
writeIterator(Adapter itemConverter, java.lang.String key, ObjectConverter.Writer objectConverter, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator, java.util.Iterator<?> iterator, java.lang.Object originalValue)
private jakarta.json.stream.JsonGenerator
writeMapBody(java.util.Map<?,?> object, Adapter itemConverter)
MappingGenerator
writeObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator)
Write the given Object o into the current JSON layer.MappingGenerator
writeObject(java.lang.String key, java.lang.Object object, jakarta.json.stream.JsonGenerator generator)
private boolean
writePrimitives(java.lang.Object value)
private boolean
writePrimitives(java.lang.String key, java.lang.Class<?> type, java.lang.Object value, jakarta.json.stream.JsonGenerator generator)
private void
writeValue(java.lang.Class<?> type, boolean dynamic, boolean primitive, boolean array, boolean collection, boolean map, Adapter itemConverter, java.lang.String key, java.lang.Object value, ObjectConverter.Writer objectConverter, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator)
private void
writeWithObjectConverter(DynamicMappingGenerator generator, ObjectConverter.Writer objectConverter, java.lang.Object value)
-
-
-
Field Detail
-
config
private final MapperConfig config
-
generator
private final jakarta.json.stream.JsonGenerator generator
-
mappings
private final Mappings mappings
-
jsonPointers
private java.util.Map<java.lang.Object,java.lang.String> jsonPointers
-
-
Constructor Detail
-
MappingGeneratorImpl
MappingGeneratorImpl(MapperConfig config, jakarta.json.stream.JsonGenerator jsonGenerator, Mappings mappings)
-
-
Method Detail
-
getJsonGenerator
public jakarta.json.stream.JsonGenerator getJsonGenerator()
- Specified by:
getJsonGenerator
in interfaceMappingGenerator
- Returns:
- the
JsonGenerator
used internally to write the JSON output.
-
writeObject
public MappingGenerator writeObject(java.lang.String key, java.lang.Object object, jakarta.json.stream.JsonGenerator generator)
- Specified by:
writeObject
in interfaceMappingGenerator
-
writeObject
public MappingGenerator writeObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator)
Description copied from interface:MappingGenerator
Write the given Object o into the current JSON layer. This will not open a new json layer ('{', '}') but really just write the attributes of o to the currently opened layer. Consider you have a classpublic class Customer { private String firstName; private String lastName; private Address address; ... }
then the resulting JSON String will e.g. look like"firstName":"Karl", "lastName":"SomeName", "address":{"street":"mystreet"}
- Specified by:
writeObject
in interfaceMappingGenerator
- Parameters:
object
- the object to writegenerator
- the jsonp generator to use- Returns:
- itself, for easier chaining of commands
-
isDedup
private boolean isDedup()
-
doWriteObject
public void doWriteObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator, boolean writeBody, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
-
writeMapBody
private jakarta.json.stream.JsonGenerator writeMapBody(java.util.Map<?,?> object, Adapter itemConverter) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
writePrimitives
private boolean writePrimitives(java.lang.Object value)
- Returns:
true
if it was a primitive,false
if the value did not get handled
-
writePrimitives
private boolean writePrimitives(java.lang.String key, java.lang.Class<?> type, java.lang.Object value, jakarta.json.stream.JsonGenerator generator)
-
isInt
private static boolean isInt(java.lang.Class<?> type)
-
isFloat
private static boolean isFloat(java.lang.Class<?> type)
-
doWriteObjectBody
private boolean doWriteObjectBody(java.lang.Object object, java.util.Collection<java.lang.String> ignored, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator) throws java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
- Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
-
writeValue
private void writeValue(java.lang.Class<?> type, boolean dynamic, boolean primitive, boolean array, boolean collection, boolean map, Adapter itemConverter, java.lang.String key, java.lang.Object value, ObjectConverter.Writer objectConverter, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator) throws java.lang.reflect.InvocationTargetException, java.lang.IllegalAccessException
- Throws:
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
-
writeWithObjectConverter
private void writeWithObjectConverter(DynamicMappingGenerator generator, ObjectConverter.Writer objectConverter, java.lang.Object value)
-
writeIterator
private void writeIterator(Adapter itemConverter, java.lang.String key, ObjectConverter.Writer objectConverter, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator, java.util.Iterator<?> iterator, java.lang.Object originalValue)
-
writeArray
private void writeArray(java.lang.Class<?> type, Adapter itemConverter, java.lang.String key, java.lang.Object arrayValue, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
Write a JSON Array with a given Array Value, like byte[], int[], Person[] etc.- Parameters:
key
- either the attribute key ornull
if the array should be rendered without key
-
writeItem
private void writeItem(java.lang.Object o, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
-
doWriteIterable
private <T> void doWriteIterable(java.lang.Iterable<T> object, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)
-
doConvertFrom
private <T> java.lang.Object doConvertFrom(T value, Adapter<T,java.lang.Object> converter)
-
isInJsRange
private boolean isInJsRange(java.lang.Number longValue)
-
-