Package org.w3c.www.http

Source Code of org.w3c.www.http.HttpParamList

// HttpParamList.java
// $Id: HttpParamList.java,v 1.3 2000/08/16 21:38:00 ylafon Exp $
// (c) COPYRIGHT MIT, INRIA and Keio, 1999.
// Please first read the full copyright statement in file COPYRIGHT.html

package org.w3c.www.http;

import org.w3c.util.ArrayDictionary;

/**
* This class parses name->value pairs, used in Authentication Info
*/

public class HttpParamList extends BasicValue {
    ArrayDictionary params = null;

    /**
     * parse.
     * @exception HttpParserException if parsing failed.
     */
    protected void parse()
  throws HttpParserException
    {
  ParseState ps = new ParseState(roff, rlen);

  this.params = new ArrayDictionary(4, 4);
  ps.prepare();

  // Parameters parsing
  ParseState it = new ParseState();
  it.separator  = (byte) '=';
  ps.separator = (byte) ',';
  while (HttpParser.nextItem(raw, ps) >= 0 ) {
      // Get the param name:
      it.prepare(ps);
      if (HttpParser.nextItem(raw, it) < 0)
    error("Invalid param list: bad param name.");
      String key = it.toString(raw, true);
      // Get the param value:
      it.prepare();
      if ( HttpParser.nextItem(raw, it) < 0)
    error("Invalid param list: no param value.");
      it.ioff = it.start;
      HttpParser.unquote(raw, it);
      params.put(key, it.toString(raw));
      ps.prepare();
  }
    }

    protected void updateByteValue() {
  HttpBuffer buf = new HttpBuffer();
  int len = params.size();
  for (int i = 0 ; len > 0 ; i++) {
      String key = (String) params.keyAt(i);
      if ( key == null )
    continue;
      buf.appendQuoted(key, (byte)'=', (String)params.elementAt(i));
      len--;
      if (len > 0) {
    buf.append((byte)',');
      }
  }
  raw  = buf.getByteCopy();
  roff = 0;
  rlen = raw.length;
    }

    public Object getValue() {
  validate();
  return this;
    }

    /**
     * Get a parameter.
     * @param name The name of the parameter to fetch.
     * @return The String value, or <strong>null</strong> if undefined.
     */

    public String getParameter(String name) {
  validate();
  return (params == null) ? null : (String) params.get(name);
    }

    /**
     * Set an authentication parameter.
     * @param name The name of the authentication parameter.
     * @param value The value of the authentication parameter.
     */

    public void setParameter(String name, String value) {
  validate();
  if ( params == null )
      params = new ArrayDictionary(4, 4);
  params.put(name, value);
    }

    public HttpParamList(boolean isValid) {
  this.isValid = isValid;
    }

    public HttpParamList() {
  this.isValid = false;
    }
}

TOP

Related Classes of org.w3c.www.http.HttpParamList

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.