/src/kilim/http/KeyValues.java
http://github.com/kilim/kilim · Java · 75 lines · 49 code · 8 blank · 18 comment · 11 complexity · 0b7437293ce4a828ad35d5a5164a0447 MD5 · raw file
- /* Copyright (c) 2006, Sriram Srinivasan
- *
- * You may distribute this software under the terms of the license
- * specified in the file "License"
- */
- package kilim.http;
- /**
- * A low overhead map to avoid creating too many objects (Entry objects and iterators etc)
- */
- public class KeyValues {
- public String[] keys;
- public String[] values;
- public int count;
-
- public KeyValues() {this(5);}
- public KeyValues(int size) {
- keys = new String[size];
- values = new String[size];
- }
-
- /**
- * @param key
- * @return value for the given key.
- */
- public String get(String key) {
- int i = indexOf(key);
- return i == -1 ? "" : values[i];
- }
-
- public int indexOf(String key) {
- int len = count;
- for (int i = 0; i < len; i++) {
- if (keys[i].equals(key)) {
- return i;
- }
- }
- return -1;
- }
-
- /**
- * add/replace key value pair.
- * @param key
- * @param value
- * @return old value
- */
- public void put(String key, String value) {
- int i = indexOf(key);
- if (i == -1) {
- if (count == keys.length) {
- keys = (String[]) Utils.growArray(keys, count * 2);
- values = (String[]) Utils.growArray(values, count * 2);
- }
- keys[count] = key;
- values[count] = value;
- count++;
- } else {
- values[i] = value;
- }
- }
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- sb.append('[');
- for (int i = 0; i < count; i++) {
- if (i != 0) sb.append(", ");
- sb.append(keys[i]).append(':').append(values[i]);
- }
- sb.append(']');
- return sb.toString();
- }
- }