- 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 MapperConfigconfigprivate jakarta.json.stream.JsonGeneratorgeneratorprivate java.util.Map<java.lang.Object,java.lang.String>jsonPointersprivate Mappingsmappings
-
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.ObjectdoConvertFrom(T value, Adapter<T,java.lang.Object> converter)private <T> voiddoWriteIterable(java.lang.Iterable<T> object, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)voiddoWriteObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator, boolean writeBody, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)private booleandoWriteObjectBody(java.lang.Object object, java.util.Collection<java.lang.String> ignored, JsonPointerTracker jsonPointer, jakarta.json.stream.JsonGenerator generator)jakarta.json.stream.JsonGeneratorgetJsonGenerator()private booleanisDedup()private static booleanisFloat(java.lang.Class<?> type)private booleanisInJsRange(java.lang.Number longValue)private static booleanisInt(java.lang.Class<?> type)private voidwriteArray(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 voidwriteItem(java.lang.Object o, java.util.Collection<java.lang.String> ignoredProperties, JsonPointerTracker jsonPointer)private voidwriteIterator(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.JsonGeneratorwriteMapBody(java.util.Map<?,?> object, Adapter itemConverter)MappingGeneratorwriteObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator)Write the given Object o into the current JSON layer.MappingGeneratorwriteObject(java.lang.String key, java.lang.Object object, jakarta.json.stream.JsonGenerator generator)private booleanwritePrimitives(java.lang.Object value)private booleanwritePrimitives(java.lang.String key, java.lang.Class<?> type, java.lang.Object value, jakarta.json.stream.JsonGenerator generator)private voidwriteValue(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 voidwriteWithObjectConverter(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:
getJsonGeneratorin interfaceMappingGenerator- Returns:
- the
JsonGeneratorused 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:
writeObjectin interfaceMappingGenerator
-
writeObject
public MappingGenerator writeObject(java.lang.Object object, jakarta.json.stream.JsonGenerator generator)
Description copied from interface:MappingGeneratorWrite 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:
writeObjectin 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.InvocationTargetExceptionjava.lang.IllegalAccessException
-
writePrimitives
private boolean writePrimitives(java.lang.Object value)
- Returns:
trueif it was a primitive,falseif 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.IllegalAccessExceptionjava.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.InvocationTargetExceptionjava.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 ornullif 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)
-
-