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);
    }
protected Map < Integer , Object > fromParamPath ( ActionExecute execute , String paramPath , List < Class < ? > > pathParamTypeList , Map < Integer , Class < ? > > optGenTypeMap ) { 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 ) ; }
--------------