public QueryStringDecoder(URI uri,Charset charset,int maxParams){
  if (uri == null) {
    throw new NullPointerException("getUri");
  }
  if (charset == null) {
    throw new NullPointerException("charset");
  }
  if (maxParams <= 0) {
    throw new IllegalArgumentException("maxParams: " + maxParams + " (expected: a positive integer)");
  }
  String rawPath=uri.getRawPath();
  if (rawPath != null) {
    hasPath=true;
  }
 else {
    rawPath="";
    hasPath=false;
  }
  this.uri=rawPath + (uri.getRawQuery() == null ? "" : '?' + uri.getRawQuery());
  this.charset=charset;
  this.maxParams=maxParams;
}

public QueryStringDecoder ( URI uri , Charset charset , int maxParams ) { if ( uri == null ) { throw new NullPointerException ( "getUri" ) ; } if ( charset == null ) { throw new NullPointerException ( "charset" ) ; } if ( maxParams <= 0 ) { throw new IllegalArgumentException ( "maxParams: " + maxParams + " (expected: a positive integer)" ) ; } String rawPath = uri . getRawPath ( ) ; if ( rawPath != null ) { hasPath = true ; } else { rawPath = "" ; hasPath = false ; } this . uri = rawPath + ( uri . getRawQuery ( ) == null ? "" : '?' + uri . getRawQuery ( ) ) ; this . charset = charset ; this . maxParams = maxParams ; }
creates a new decoder that decodes the specified uri encoded in the specified charset .
