question: public static MultivaluedMap < String , String > decodeMatrix ( String pathSegment , boolean decode ) { MultivaluedMap < String , String > matrixMap = EmoMultivaluedMap . create ( ) ; int s = pathSegment . indexOf ( ';' ) + 1 ; if ( s == 0 || s == pathSegment . length ( ) ) { return matrixMap ; } do { int e = pathSegment . indexOf ( ';' , s ) ; if ( e == - 1 ) { decodeMatrixParam ( matrixMap , pathSegment . substring ( s ) , decode ) ; } else if ( e > s ) { decodeMatrixParam ( matrixMap , pathSegment . substring ( s , e ) , decode ) ; } s = e + 1 ; } while ( s > 0 && s < pathSegment . length ( ) ) ; return matrixMap ; }
target:  Decode the matrix component of a URI path segment.