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;
}

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 ; }
decode the matrix component of a uri path segment .
