Beispiel #1
0
  /**
   * Add to or set a field. If the field is allowed to have multiple values, add will add multiple
   * headers of the same name.
   *
   * @param name the name of the field
   * @param value the value of the field.
   * @exception IllegalArgumentException If the name is a single valued field and already has a
   *     value.
   */
  public void add(Buffer name, Buffer value) throws IllegalArgumentException {
    if (value == null) throw new IllegalArgumentException("null value");

    if (!(name instanceof CachedBuffer)) name = HttpHeaders.CACHE.lookup(name);
    name = name.asImmutableBuffer();

    if (!(value instanceof CachedBuffer)
        && HttpHeaderValues.hasKnownValues(HttpHeaders.CACHE.getOrdinal(name)))
      value = HttpHeaderValues.CACHE.lookup(value);
    value = value.asImmutableBuffer();

    Field field = _names.get(name);
    Field last = null;
    while (field != null) {
      last = field;
      field = field._next;
    }

    // create the field
    field = new Field(name, value);
    _fields.add(field);

    // look for chain to add too
    if (last != null) last._next = field;
    else _names.put(name, field);
  }
Beispiel #2
0
 /**
  * Remove a field.
  *
  * @param name
  */
 public void remove(Buffer name) {
   if (!(name instanceof BufferCache.CachedBuffer)) name = HttpHeaders.CACHE.lookup(name);
   Field field = _names.remove(name);
   while (field != null) {
     _fields.remove(field);
     field = field._next;
   }
 }
Beispiel #3
0
 /**
  * Set a field.
  *
  * @param name the name of the field
  * @param value the value of the field. If null the field is cleared.
  */
 public void put(String name, String value) {
   if (value == null) remove(name);
   else {
     Buffer n = HttpHeaders.CACHE.lookup(name);
     Buffer v = convertValue(value);
     put(n, v);
   }
 }
Beispiel #4
0
  /**
   * Set a field.
   *
   * @param name the name of the field
   * @param value the value of the field. If null the field is cleared.
   */
  public void put(Buffer name, Buffer value) {
    remove(name);
    if (value == null) return;

    if (!(name instanceof BufferCache.CachedBuffer)) name = HttpHeaders.CACHE.lookup(name);
    if (!(value instanceof CachedBuffer))
      value = HttpHeaderValues.CACHE.lookup(value).asImmutableBuffer();

    // new value;
    Field field = new Field(name, value);
    _fields.add(field);
    _names.put(name, field);
  }
Beispiel #5
0
  /**
   * Set a field.
   *
   * @param name the name of the field
   * @param list the List value of the field. If null the field is cleared.
   */
  public void put(String name, List<?> list) {
    if (list == null || list.size() == 0) {
      remove(name);
      return;
    }
    Buffer n = HttpHeaders.CACHE.lookup(name);

    Object v = list.get(0);
    if (v != null) put(n, HttpHeaderValues.CACHE.lookup(v.toString()));
    else remove(n);

    if (list.size() > 1) {
      java.util.Iterator<?> iter = list.iterator();
      iter.next();
      while (iter.hasNext()) {
        v = iter.next();
        if (v != null) put(n, HttpHeaderValues.CACHE.lookup(v.toString()));
      }
    }
  }
Beispiel #6
0
 /**
  * Sets the value of a date field.
  *
  * @param name the field name
  * @param date the field date value
  */
 public void addDateField(String name, long date) {
   String d = formatDate(date);
   Buffer n = HttpHeaders.CACHE.lookup(name);
   Buffer v = new ByteArrayBuffer(d);
   add(n, v);
 }
Beispiel #7
0
 /**
  * Sets the value of a date field.
  *
  * @param name the field name
  * @param date the field date value
  */
 public void putDateField(String name, long date) {
   Buffer n = HttpHeaders.CACHE.lookup(name);
   putDateField(n, date);
 }
Beispiel #8
0
 /**
  * Sets the value of an long field.
  *
  * @param name the field name
  * @param value the field long value
  */
 public void addLongField(String name, long value) {
   Buffer n = HttpHeaders.CACHE.lookup(name);
   Buffer v = BufferUtil.toBuffer(value);
   add(n, v);
 }
Beispiel #9
0
 /**
  * Remove a field.
  *
  * @param name
  */
 public void remove(String name) {
   remove(HttpHeaders.CACHE.lookup(name));
 }
Beispiel #10
0
 /**
  * Add to or set a field. If the field is allowed to have multiple values, add will add multiple
  * headers of the same name.
  *
  * @param name the name of the field
  * @param value the value of the field.
  * @exception IllegalArgumentException If the name is a single valued field and already has a
  *     value.
  */
 public void add(String name, String value) throws IllegalArgumentException {
   if (value == null) return;
   Buffer n = HttpHeaders.CACHE.lookup(name);
   Buffer v = convertValue(value);
   add(n, v);
 }
Beispiel #11
0
 /**
  * Set a field.
  *
  * @param name the name of the field
  * @param value the value of the field. If null the field is cleared.
  */
 public void put(Buffer name, String value) {
   Buffer n = HttpHeaders.CACHE.lookup(name);
   Buffer v = convertValue(value);
   put(n, v);
 }
Beispiel #12
0
 /* ------------------------------------------------------------ */
 public boolean containsKey(String name) {
   return _names.containsKey(HttpHeaders.CACHE.lookup(name));
 }
Beispiel #13
0
 /* ------------------------------------------------------------ */
 private Field getField(Buffer name) {
   return _names.get(HttpHeaders.CACHE.lookup(name));
 }
Beispiel #14
0
 /* ------------------------------------------------------------ */
 public int getNameOrdinal() {
   return HttpHeaders.CACHE.getOrdinal(_name);
 }