code: protected Map<Integer, Object> fromParamPath(ActionExecute execute, String paramPath, List<Class<?>> pathParamTypeList,
              Map<Integer, Class<?>> optGenTypeMap) {
          // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
          // e.g. index(String first) /product/list/2/
          //  => urlPatternRegexp=^([^/]+)$, paramPath=2, pathParamTypeList=[String]
          // 
          // e.g. sea(String first) /product/list/sea/2/
          //  => urlPatternRegexp=^sea/([^/]+)$, paramPath=2, pathParamTypeList=[String]
          // 
          // e.g. land(String first, String second) /product/list/sea/2/3/
          //  => urlPatternRegexp=^land/([^/]+)/([^/]+)$, paramPath=2/3, pathParamTypeList=[String, String]
          // _/_/_/_/_/_/_/_/_/_/
          final List<String> paramList = prepareParamList(execute, paramPath, pathParamTypeList);
          final Map<Integer, Object> valueMap = new LinkedHashMap<Integer, Object>(pathParamTypeList.size());
          int index = 0;
          for (Class<?> paramType : pathParamTypeList) {
              final String plainValue = paramList.get(index);
              valueMap.put(index, filterPathParam(execute, index, paramType, optGenTypeMap, plainValue));
              ++index;
          }
          return Collections.unmodifiableMap(valueMap);
      }
docs: --------------