Package com.almende.eve.rpc.jsonrpc.jackson

Source Code of com.almende.eve.rpc.jsonrpc.jackson.JOM

/**
* Singleton Jackson ObjectMapper
*/
package com.almende.eve.rpc.jsonrpc.jackson;

import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.NullNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.datatype.joda.JodaModule;

public class JOM {
  private static ObjectMapper m = null;
 
  protected JOM() {}
 
  public static ObjectMapper getInstance() {
    if (m != null) {
      return m;
    }
   
    m = createInstance();
    m.registerModule(new JodaModule());
    return m;
  }
 
  public static ObjectNode createObjectNode() {
    return getInstance().createObjectNode();
  }
 
  public static ArrayNode createArrayNode() {
    return getInstance().createArrayNode();
  }
 
  public static NullNode createNullNode() {
    return NullNode.getInstance();
  }
 
  private static synchronized ObjectMapper createInstance () {
    ObjectMapper mapper = new ObjectMapper();
   
    // set configuration
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    mapper.configure(DeserializationFeature.READ_UNKNOWN_ENUM_VALUES_AS_NULL , false);
   
    return mapper;
 
  public static TypeFactory getTypeFactory(){
    return JOM.getInstance().getTypeFactory();
  }
  public static JavaType getVoid(){
    return JOM.getInstance().getTypeFactory().uncheckedSimpleType(Void.class);
  }
  public static JavaType getSimpleType(Class<?> c){
    return JOM.getInstance().getTypeFactory().uncheckedSimpleType(c);
  }

}
TOP

Related Classes of com.almende.eve.rpc.jsonrpc.jackson.JOM

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.