Example usage for com.fasterxml.jackson.databind.type CollectionType getContentType

List of usage examples for com.fasterxml.jackson.databind.type CollectionType getContentType

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.type CollectionType getContentType.

Prototype

public JavaType getContentType() 

Source Link

Usage

From source file:org.emfjson.jackson.databind.ser.EMFSerializers.java

@Override
public JsonSerializer<?> findCollectionSerializer(SerializationConfig config, CollectionType type,
        BeanDescription beanDesc, TypeSerializer elementTypeSerializer,
        JsonSerializer<Object> elementValueSerializer) {
    if (type.getContentType().isReferenceType()) {
        return new CollectionSerializer(type.getContentType(), false, null,
                (JsonSerializer) _referenceSerializer);
    }//  ww w. j av a  2  s .co m
    return super.findCollectionSerializer(config, type, beanDesc, elementTypeSerializer,
            elementValueSerializer);
}

From source file:com.kaaprotech.satu.jackson.SatuDeserializers.java

@Override
public JsonDeserializer<?> findCollectionDeserializer(final CollectionType type,
        final DeserializationConfig config, final BeanDescription beanDesc,
        final TypeDeserializer elementTypeDeserializer, final JsonDeserializer<?> elementDeserializer)
        throws JsonMappingException {

    if (ImmutableSet.class.isAssignableFrom(type.getRawClass())) {
        return new StdDeserializer<Object>(type) {
            private static final long serialVersionUID = 1L;

            @Override//from   www .  jav  a  2s .  c o  m
            public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {

                if (jp.isExpectedStartArrayToken()) {
                    JsonToken t;

                    MutableSet<Object> s = Sets.mutable.of();

                    while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
                        Object value;
                        if (t == JsonToken.VALUE_NULL) {
                            value = null;
                        } else if (elementDeserializer == null) {
                            value = jp.readValueAs(type.getContentType().getRawClass());
                        } else if (elementTypeDeserializer == null) {
                            value = elementDeserializer.deserialize(jp, context);
                        } else {
                            value = elementDeserializer.deserializeWithType(jp, context,
                                    elementTypeDeserializer);
                        }
                        s.add(value);
                    }
                    return s.toImmutable();
                }
                throw context.mappingException(type.getRawClass());
            }
        };
    }

    return super.findCollectionDeserializer(type, config, beanDesc, elementTypeDeserializer,
            elementDeserializer);
}