BiConsumer insertType()

in wayang-commons/wayang-core/src/main/java/org/apache/wayang/core/util/json/WayangJsonObj.java [223:279]


  BiConsumer<String, Object> insertType(Object value){
    ObjectNode node = this.getNode();
    if(value == null){
      return (k, v) -> {
        if(node.has(k)){
          node.replace(k, NULL);
        }else{
          node.set(k, NULL);
        }
      };
    }else if(value instanceof Integer){
      return (k, v) ->  node.put(k, (Integer) v);
    }else if(value instanceof Long){
      return (k, v) ->  node.put(k, (Long) v);
    }else if(value instanceof Float){
      return (k, v) ->  node.put(k, (Float) v);
    }else if(value instanceof String){
      return (k, v) ->  node.put(k, (String) v);
    }else if(value instanceof Double){
      return (k, v) ->  node.put(k, (Double) v);
    }else if(value instanceof Boolean){
      return (k, v) ->  node.put(k, (Boolean) v);
    }else if(value instanceof ObjectNode){
      return (k, v) -> {
        if(node.has(k)){
          node.replace(k, (ObjectNode)v);
        }else{
          node.set(k, (ObjectNode)v);
        }
      };
    }else if(value instanceof ArrayNode){
      return (k, v) -> {
        if(node.has(k)){
          node.replace(k, (ArrayNode)v);
        }else{
          node.set(k, (ArrayNode)v);
        }
      };
    }else if(value instanceof WayangJsonArray){
      return (k, v) -> {
        if(node.has(k)){
          node.replace(k, ((WayangJsonArray)v).getNode());
        }else{
          node.set(k, ((WayangJsonArray)v).getNode());
        }
      };
    }else if(value instanceof WayangJsonObj){
      return (k, v) -> {
        if(node.has(k)){
          node.replace(k, ((WayangJsonObj)v).getNode());
        }else{
          node.set(k, ((WayangJsonObj)v).getNode());
        }
      };
    }
    throw new WayangException("The type is not recognizable "+ value.getClass());
  }