question: @ Override public PathImpl schemeWalk ( String userPath , Map < String , Object > attributes , String filePath , int offset ) { int length = filePath . length ( ) ; if ( length <= offset || filePath . charAt ( offset ) != '(' ) return super . schemeWalk ( userPath , attributes , filePath , offset ) ; MergePath mergePath = createMergePath ( ) ; mergePath . setUserPath ( userPath ) ; int head = ++ offset ; int tail = head ; while ( tail < length ) { int ch = filePath . charAt ( tail ) ; if ( ch == ')' ) { if ( head + 1 != tail ) { String subPath = filePath . substring ( head , tail ) ; if ( subPath . startsWith ( "(" ) && subPath . endsWith ( ")" ) ) subPath = subPath . substring ( 1 , subPath . length ( ) - 1 ) ; mergePath . addMergePath ( VfsOld . lookup ( subPath ) ) ; } if ( tail + 1 == length ) return mergePath ; else return mergePath . fsWalk ( userPath , attributes , filePath . substring ( tail + 1 ) ) ; } else if ( ch == ';' ) { String subPath = filePath . substring ( head , tail ) ; if ( subPath . startsWith ( "(" ) && subPath . endsWith ( ")" ) ) subPath = subPath . substring ( 1 , subPath . length ( ) - 1 ) ; mergePath . addMergePath ( VfsOld . lookup ( subPath ) ) ; head = ++ tail ; } else if ( ch == '(' ) { int depth = 1 ; for ( tail ++ ; tail < length ; tail ++ ) { if ( filePath . charAt ( tail ) == '(' ) depth ++ ; else if ( filePath . charAt ( tail ) == ')' ) { tail ++ ; depth -- ; if ( depth == 0 ) break ; } } if ( depth != 0 ) return new NotFoundPath ( getSchemeMap ( ) , filePath ) ; } else tail ++ ; } return new NotFoundPath ( getSchemeMap ( ) , filePath ) ; }
target:  schemeWalk is called by Path for a scheme lookup like file:/tmp/foo