docs: public T add(String name) {
          try {
              if (m_items == null) {
                  m_items = new TreeMap<String, T>();
              }
  
              String mapKey = name.toUpperCase();
              if (m_items.containsKey(mapKey)) {
                  throw new CatalogException("Catalog item '" + mapKey + "' already exists for " + m_parent);
              }
  
              T x = m_cls.newInstance();
              x.setBaseValues(this, name);
              x.initChildMaps();
  
              m_items.put(mapKey, x);
  
              if (m_hasComputedOrder) {
                  recomputeRelativeIndexes();
              }
  
              return x;
          } catch (Exception ex) {
              throw new RuntimeException(ex);
          }
      }