code: protected Map<Integer, Object> withoutParamPath(ActionExecute execute, List<Class<?>> pathParamTypeList) {
          final Map<Integer, Object> pathParamValueMap;
          if (!pathParamTypeList.isEmpty()) { // e.g. /sea/land/3/ but /sea/land/
              final Map<Integer, Object> valueMap = new LinkedHashMap<Integer, Object>(pathParamTypeList.size());
              int index = 0;
              for (Class<?> paramType : pathParamTypeList) {
                  final Object value = isOptionalParameterType(paramType) ? createEmptyOptional(execute, index, paramType) : null;
                  valueMap.put(index, value); // null value checked later
                  ++index;
              }
              pathParamValueMap = Collections.unmodifiableMap(valueMap);
          } else {
              pathParamValueMap = Collections.emptyMap();
          }
          return pathParamValueMap;
      }
docs: -----------------