private Object fixValue()

in iep-admin/src/main/java/com/netflix/iep/admin/endpoints/JmxEndpoint.java [111:135]


  private Object fixValue(Object obj) {
    if (obj instanceof CompositeData cd) {
      Map<String, Object> map = new TreeMap<>();
      for (String k : cd.getCompositeType().keySet()) {
        map.put(k, fixValue(cd.get(k)));
      }
      return map;
    } else if (obj instanceof TabularData td) {
      return td.values()
          .stream()
          .map(this::fixValue)
          .collect(Collectors.toList());
    } else if (obj != null && obj.getClass().isArray()) {
      List<Object> vs = new ArrayList<>();
      int len = Array.getLength(obj);
      for (int i = 0; i < len; ++i) {
        vs.add(fixValue(Array.get(obj, i)));
      }
      return vs;
    } else if (obj instanceof Number) {
      return obj;
    } else {
      return "" + obj;
    }
  }