code: public static String toCamelCase(final String propName) {
          String newPropName = camelCasePropNamePool.get(propName);
  
          if (newPropName == null) {
              newPropName = StringUtil.toCamelCase(propName);
              newPropName = NameUtil.getCachedName(newPropName);
              camelCasePropNamePool.put(propName, newPropName);
          }
  
          return newPropName;
      }
docs: It's designed for field/method/class/column/table names. and source and target Strings will be cached.
  
  @param str
  @return