private void writeObject()

in src/main/java/software/amazon/cloudformation/proxy/StdCallbackContext.java [73:102]


        private void writeObject(Object val, JsonGenerator gen, SerializerProvider serializers) throws IOException {
            if (val == null) {
                gen.writeNull();
                return;
            }

            // Primitive
            if (val instanceof String || val instanceof Number || val instanceof Boolean) {
                gen.writeObject(val);
                return;
            }

            // Encode object type information
            gen.writeStartArray();
            Class<?> type = val.getClass();
            // write class name first
            gen.writeString(type.getName());
            // the write value next
            if (val instanceof Collection<?>) {
                writeCollection((Collection<?>) val, gen, serializers);
            } else if (val instanceof Map<?, ?>) {
                Map<?, ?> map = (Map<?, ?>) val;
                writeMap(map, gen, serializers);
            } else {
                JsonSerializer<Object> serializer = serializers.findValueSerializer(type);
                serializer.serialize(val, gen, serializers);
            }
            // end marker
            gen.writeEndArray();
        }