code: public static <T extends InterconnectObject> T cloneObject(T object) throws IOException {
          return InterconnectMapper.fromJson(InterconnectMapper.toJson(object), (Class<T>) object.getClass());
      }
docs: Returns a clone of the given object using JSON (de)serialization.
  
  @param object the object to be cloned
  @return a clone of this object.
  @throws JsonGenerationException if the JSON data could not be generated
  @throws JsonMappingException    if the object could not be mapped to a JSON string
  @throws IOException             if an I/O related problem occurred