Class MappingGeneratorImpl

    • 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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • 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 interface MappingGenerator
        Returns:
        the JsonGenerator used internally to write the JSON output.
      • 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 class
             public 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 interface MappingGenerator
        Parameters:
        object - the object to write
        generator - 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
      • 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 or null 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)