private static OpenTypeConverter makeParameterizedConverter(ParameterizedType objType)
      throws OpenDataException {

    final Type rawType = objType.getRawType();

    if (rawType instanceof Class) {
      Class c = (Class<?>) rawType;
      if (c == List.class || c == Set.class || c == SortedSet.class) {
        Type[] actuals = objType.getActualTypeArguments();
        assert (actuals.length == 1);
        if (c == SortedSet.class) {
          mustBeComparable(c, actuals[0]);
        }
        return makeArrayOrCollectionConverter(objType, actuals[0]);
      } else {
        boolean sortedMap = (c == SortedMap.class);
        if (c == Map.class || sortedMap) {
          Type[] actuals = objType.getActualTypeArguments();
          assert (actuals.length == 2);
          if (sortedMap) {
            mustBeComparable(c, actuals[0]);
          }
          return makeTabularConverter(objType, sortedMap, actuals[0], actuals[1]);
        }
      }
    }
    throw new OpenDataException("Cannot convert type: " + objType);
  }
Supported types are List<E>, Set<E>, SortedSet<E>, Map<K,V>, SortedMap<K,V>.

Subclasses of the above types wont be supported as deserialize info wont be there.

Queue<E> won't be supported as Queue is more of a functional data structure rather than a data
holder

@return the open type converter for a given type
geode-core/src/main/java/org/apache/geode/management/internal/OpenTypeConverter.java