code: public void addParameter( String name, String value, boolean encoded )
      {
          if ( name == null )
          {
              throw new IllegalArgumentException( "A parameter name may not be null." );
          }
  
          if ( !encoded )
          {
              name = encode( name );
              value = encode( value );
          }
  
          if ( _parameters == null )
          {
              _parameters = new QueryParameters();
              _opaque = false;
              setSchemeSpecificPart( null );
          }
  
          _parameters.addParameter(name, value);
      }
docs: Add a parameter for the query string.
  <p> If the encoded flag is true then this method assumes that
  the name and value do not need encoding or are already encoded
  correctly. Otherwise, it translates the name and value with the
  character encoding of this URI and adds them to the set of
  parameters for the query. If the encoding for this URI has
  not been set, then the default encoding used is "UTF-8". </p>
  <p> Multiple values for the same parameter can be set by
  calling this method multiple times with the same name. </p>
  
  @param name  name
  @param value value
  @param encoded Flag indicating whether the names and values are
  already encoded.