Example usage for com.fasterxml.jackson.databind.ser.std StdDelegatingSerializer StdDelegatingSerializer

List of usage examples for com.fasterxml.jackson.databind.ser.std StdDelegatingSerializer StdDelegatingSerializer

Introduction

In this page you can find the example usage for com.fasterxml.jackson.databind.ser.std StdDelegatingSerializer StdDelegatingSerializer.

Prototype

@SuppressWarnings("unchecked")
    public <T> StdDelegatingSerializer(Class<T> cls, Converter<T, ?> converter) 

Source Link

Usage

From source file:com.pivotal.cf.mobile.ats.json.ScriptObjectMirrorSerializer.java

@Override
public void serialize(ScriptObjectMirror value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {
    if (value.isArray()) {
        if (arraySerializer == null) {
            arraySerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObjectMirror.class,
                    new StdConverter<ScriptObjectMirror, Collection<Object>>() {

                        @Override
                        public Collection<Object> convert(ScriptObjectMirror value) {
                            return value.values();
                        }/*from   w w w . ja  v a 2s . co  m*/

                    }).createContextual(provider, null);

        }
        arraySerializer.serialize(value, jgen, provider);
    } else {
        if (objectSerializer == null) {
            objectSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObjectMirror.class,
                    new StdConverter<ScriptObjectMirror, Map<String, Object>>() {

                        @Override
                        public Map<String, Object> convert(ScriptObjectMirror value) {
                            return value;
                        }

                    }).createContextual(provider, null);

        }
        objectSerializer.serialize(value, jgen, provider);
    }
}

From source file:com.pivotal.cf.mobile.ats.json.ScriptObjectSerializer.java

@Override
public void serialize(ScriptObject value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonGenerationException {

    if (value instanceof NativeDate) {
        if (dateSerializer == null) {
            dateSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class,
                    new StdConverter<ScriptObject, String>() {
                        @Override
                        public String convert(ScriptObject value) {
                            return NativeDate.toJSON(value, null).toString();
                        }//from w  ww  . j  a  v  a2 s  .c om
                    }).createContextual(provider, null);
        }
        dateSerializer.serialize(value, jgen, provider);
    } else if (value instanceof ScriptFunction) {
        if (functionSerializer == null) {
            functionSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class,
                    new StdConverter<ScriptObject, Object>() {
                        @Override
                        public Object convert(ScriptObject value) {
                            return null;
                        }
                    }).createContextual(provider, null);
        }
        functionSerializer.serialize(value, jgen, provider);
    } else if (value.isArray()) {
        if (arraySerializer == null) {
            arraySerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class,
                    new StdConverter<ScriptObject, Collection<Object>>() {
                        @Override
                        public Collection<Object> convert(ScriptObject value) {
                            return value.values();
                        }
                    }).createContextual(provider, null);
        }
        arraySerializer.serialize(value, jgen, provider);
    } else {
        if (objectSerializer == null) {
            objectSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class,
                    new StdConverter<ScriptObject, Map<String, Object>>() {
                        @Override
                        public Map<String, Object> convert(ScriptObject value) {
                            Map<String, Object> convertedMap = new LinkedHashMap<String, Object>();
                            value.propertyIterator().forEachRemaining(k -> convertedMap.put(k, value.get(k)));
                            return convertedMap;
                        }
                    }).createContextual(provider, null);
        }
        objectSerializer.serialize(value, jgen, provider);
    }
}