public void addStrippedPropertyPaths(List<String> strippedPaths, String nestedPath, String propertyPath) {
        
        final int startIndex = propertyPath.indexOf('[');
        if (startIndex != -1) {
            final int endIndex = propertyPath.indexOf(']');
            if (endIndex != -1) {
                final String prefix = propertyPath.substring(0, startIndex);
                final String key = propertyPath.substring(startIndex, endIndex + 1);
                final String suffix = propertyPath.substring(endIndex + 1, propertyPath.length());
                
                // Strip the first key.
                strippedPaths.add(nestedPath + prefix + suffix);
                
                // Search for further keys to strip, with the first key stripped.
                addStrippedPropertyPaths(strippedPaths, nestedPath + prefix, suffix);
                
                // Search for further keys to strip, with the first key not stripped.
                addStrippedPropertyPaths(strippedPaths, nestedPath + prefix + key, suffix);
            }
        }
    }
public void addStrippedPropertyPaths ( List < String > strippedPaths , String nestedPath , String propertyPath ) { final int startIndex = propertyPath . indexOf ( '[' ) ; if ( startIndex != - 1 ) { final int endIndex = propertyPath . indexOf ( ']' ) ; if ( endIndex != - 1 ) { final String prefix = propertyPath . substring ( 0 , startIndex ) ; final String key = propertyPath . substring ( startIndex , endIndex + 1 ) ; final String suffix = propertyPath . substring ( endIndex + 1 , propertyPath . length ( ) ) ; strippedPaths . add ( nestedPath + prefix + suffix ) ; addStrippedPropertyPaths ( strippedPaths , nestedPath + prefix , suffix ) ; addStrippedPropertyPaths ( strippedPaths , nestedPath + prefix + key , suffix ) ; } } }
パスからリストのインデックス([1])やマップのキー([key])を除去したものを構成する。
<p>SpringFrameworkの「PropertyEditorRegistrySupport#addStrippedPropertyPaths(...)」の処理</p>
@param strippedPaths 除去したパス
@param nestedPath 現在のネストしたパス
@param propertyPath 処理対象のパス