Example usage for com.fasterxml.jackson.databind SerializerProvider findValueSerializer

List of usage examples for com.fasterxml.jackson.databind SerializerProvider findValueSerializer

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind SerializerProvider findValueSerializer.

Prototype

public JsonSerializer<Object> findValueSerializer(Class<?> paramClass, BeanProperty paramBeanProperty) 

Source Link

Usage

From source file:org.mongojack.internal.util.JacksonAccessor.java

public static JsonSerializer findValueSerializer(SerializerProvider serializerProvider, Class clazz) {
    try {/*  w w  w  .j av  a  2  s. co m*/
        return serializerProvider.findValueSerializer(clazz, null);
    } catch (JsonMappingException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.mongojack.internal.util.JacksonAccessor.java

public static JsonSerializer findValueSerializer(SerializerProvider serializerProvider, JavaType javaType) {
    try {//from www.  ja v a  2s.c  om
        return serializerProvider.findValueSerializer(javaType, null);
    } catch (JsonMappingException e) {
        throw new RuntimeException(e);
    }
}

From source file:net.nullschool.grains.jackson.datatype.GrainSerializer.java

private JsonSerializer<Object> findLateSerializer(Class<?> valueClass, SerializerProvider provider)
        throws JsonMappingException {

    JsonSerializer<Object> serializer = lateSerializerMemos.serializerFor(valueClass);
    if (serializer == null) {
        serializer = provider.findValueSerializer(valueClass, null);
        lateSerializerMemos = lateSerializerMemos.newWith(valueClass, serializer);
    }//  ww  w  .ja v  a  2 s .  co m
    return serializer;
}

From source file:be.dnsbelgium.rdap.jackson.StructuredValueSerializer.java

@Override
public void serialize(StructuredValue value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException {
    for (StructuredValue.Component c : value.getComponents()) {
        // in a structured context, a list-component must start with [ and end with ]
        if (AbstractList.class.isAssignableFrom(c.value.getClass())
                && ((AbstractList) c.value).getValues() != null
                && ((AbstractList) c.value).getValues().size() > 1) {
            jgen.writeStartArray();//  w w w.  ja  v a  2s  . c  o  m
            provider.findValueSerializer(c.value.getClass(), null).serialize(c.value, jgen, provider);
            jgen.writeEndArray();
        } else {
            provider.findValueSerializer(c.value.getClass(), null).serialize(c.value, jgen, provider);
        }
    }
}

From source file:com.googlecode.jsonschema2pojo.SchemaGenerator.java

private SchemaAware getValueSerializer(Object valueAsJavaType) throws JsonMappingException {

    SerializerProvider serializerProvider = new DefaultSerializerProvider.Impl()
            .createInstance(OBJECT_MAPPER.getSerializationConfig(), BeanSerializerFactory.instance);

    if (valueAsJavaType == null) {
        return NullSerializer.instance;
    } else {/*w ww  . j a v a2s.co  m*/
        Class<? extends Object> javaTypeForValue = valueAsJavaType.getClass();
        JsonSerializer<Object> valueSerializer = serializerProvider.findValueSerializer(javaTypeForValue, null);
        return (SchemaAware) valueSerializer;
    }
}

From source file:org.jsonschema2pojo.SchemaGenerator.java

private SchemaAware getValueSerializer(Object valueAsJavaType) throws JsonMappingException {

    SerializerProvider serializerProvider = new DefaultSerializerProvider.Impl()
            .createInstance(OBJECT_MAPPER.getSerializationConfig(), BeanSerializerFactory.instance);

    if (valueAsJavaType == null) {
        return NullSerializer.instance;
    } else if (valueAsJavaType instanceof Long) {
        // longs are 'integers' in schema terms
        JsonSerializer<Object> valueSerializer = serializerProvider.findValueSerializer(Integer.class, null);
        return (SchemaAware) valueSerializer;
    } else {/*from   ww w  .  j a va2  s . c  o  m*/
        Class<? extends Object> javaTypeForValue = valueAsJavaType.getClass();
        JsonSerializer<Object> valueSerializer = serializerProvider.findValueSerializer(javaTypeForValue, null);
        return (SchemaAware) valueSerializer;
    }
}

From source file:net.nullschool.grains.jackson.datatype.GrainSerializer.java

@Override
public void resolve(SerializerProvider provider) throws JsonMappingException {
    if (isResolved.getAndSet(true)) {
        // This serializer has already been resolved so don't resolve again; avoids stack overflow.
        return;// w  w  w .j av  a  2 s. c om
    }
    List<PropertyWriter> writers = new ArrayList<>();
    for (GrainProperty gp : factory.getBasisProperties().values()) {
        JacksonGrainProperty prop = new JacksonGrainProperty(gp, provider.getTypeFactory(), handledType());
        JsonSerializer<Object> serializer = provider.findValueSerializer(prop.getType(), prop);

        writers.add(new PropertyWriter(prop.getName(), serializer));
    }
    this.writers = writers.toArray(new PropertyWriter[writers.size()]);
}

From source file:de.tudarmstadt.ukp.clarin.webanno.brat.message.BeanAsArraySerializer.java

@Override
public void serializeContents(Object value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    JsonPropertyOrder order = value.getClass().getAnnotation(JsonPropertyOrder.class);
    String[] propOrder = (order == null) ? null : order.value();

    if (propOrder == null) {
        throw new IllegalStateException("Bean must declare JsonPropertyOrder!");
    }/*from   w w  w  .ja v  a2 s .com*/

    if (propOrder.length == 0) {
        return;
    }

    int i = 0;
    try {
        do {
            Field field = value.getClass().getDeclaredField(propOrder[i]);
            ReflectionUtils.makeAccessible(field);
            Object elem = field.get(value);
            if (elem == null) {
                provider.defaultSerializeNull(jgen);
            } else {
                Class<?> cc = elem.getClass();
                JsonSerializer<Object> serializer = provider.findValueSerializer(cc, null);
                serializer.serialize(elem, jgen, provider);
            }
            ++i;
        } while (i < propOrder.length);
    } catch (Exception e) {
        // [JACKSON-55] Need to add reference information
        wrapAndThrow(provider, e, value, i);
    }
}

From source file:de.undercouch.bson4jackson.BsonGenerator.java

/**
 * Write a BSON JavaScript object/*from   w w  w .j a va2 s.com*/
 *
 * @param javaScript The javaScript to write
 * @param provider The serializer provider, for serializing the scope
 * @throws IOException If an error occurred in the stream while writing
 */
public void writeJavaScript(JavaScript javaScript, SerializerProvider provider) throws IOException {
    _writeArrayFieldNameIfNeeded();
    _verifyValueWrite("write javascript");
    if (javaScript.getScope() == null) {
        _buffer.putByte(_typeMarker, BsonConstants.TYPE_JAVASCRIPT);
        _writeString(javaScript.getCode());
    } else {
        _buffer.putByte(_typeMarker, BsonConstants.TYPE_JAVASCRIPT_WITH_SCOPE);
        // reserve space for the entire structure size
        int p = _buffer.size();
        _buffer.putInt(0);

        // write the code
        _writeString(javaScript.getCode());

        nextObjectIsEmbeddedInValue = true;
        // write the document
        provider.findValueSerializer(Map.class, null).serialize(javaScript.getScope(), this, provider);
        // write the length
        if (!isEnabled(Feature.ENABLE_STREAMING)) {
            int l = _buffer.size() - p + 4;
            _buffer.putInt(p, l);
        }
    }
    flushBuffer();
}

From source file:be.dnsbelgium.rdap.jackson.ContactSerializer.java

@Override
public void serialize(Contact contact, JsonGenerator jsonGenerator, SerializerProvider serializerProvider)
        throws IOException {
    jsonGenerator.writeStartArray();//from w w w.  j a v a 2 s  .c o  m
    // start write version
    jsonGenerator.writeStartArray();
    jsonGenerator.writeString("version");
    jsonGenerator.writeStartObject();
    jsonGenerator.writeEndObject();
    jsonGenerator.writeString("text");
    jsonGenerator.writeString("4.0");
    jsonGenerator.writeEndArray();
    // end write version
    for (Contact.Property property : contact.getProperties()) {
        // start write property
        jsonGenerator.writeStartArray();
        // start write property name
        String key = (property.getGroup() == null) ? property.getName()
                : property.getGroup() + "." + property.getName();
        jsonGenerator.writeString(property.getName().toLowerCase(Locale.ENGLISH));
        // end write property name
        // start write property parameters
        jsonGenerator.writeStartObject();
        if (property.getGroup() != null) {
            jsonGenerator.writeFieldName("group");
            jsonGenerator.writeString(property.getGroup());
        }
        if (property.getParameters() != null) {

            Iterator<String> it = property.getParameters().keys();
            while (it.hasNext()) {
                String k = it.next();
                if (k.equalsIgnoreCase("value")) {
                    continue;
                }
                Set<String> values = property.getParameters().get(k);
                if (values.size() == 0) {
                    // no parameters for this property, skip this step
                    continue;
                }
                jsonGenerator.writeFieldName(k.toLowerCase(Locale.ENGLISH));
                if (values.size() == 1) {
                    jsonGenerator.writeString(values.toArray(new String[values.size()])[0]);
                    continue;
                }
                // start write all property parameter values (array)
                jsonGenerator.writeStartArray();
                for (String str : property.getParameters().get(k)) {
                    jsonGenerator.writeString(str);
                }
                jsonGenerator.writeEndArray();
                // end write all property parameter values (array)

            }
        }
        jsonGenerator.writeEndObject();
        // end write property parameters
        // start write property type
        String value = "text";
        if (property.getParameters() != null) {
            Set<String> types = property.getParameters().get("VALUE");
            if (types != null) {
                value = types.iterator().next();
            }
        }
        jsonGenerator.writeString(value);
        // end write property type
        // start write property value
        JsonSerializer s = serializerProvider.findValueSerializer(property.getValue().getClass(), null);
        s.serialize(property.getValue(), jsonGenerator, serializerProvider);
        // end write property value
        jsonGenerator.writeEndArray();
        // end write property
    }
    jsonGenerator.writeEndArray();
}