1 package jfun.yan.xml; 2 3 import java.util.ArrayList ; 4 import java.util.HashMap ; 5 6 13 final class MapLiteral extends HashMap implements Literal { 14 private final ArrayList keys; 15 MapLiteral() { 16 this.keys = new ArrayList (); 17 } 18 19 MapLiteral(int initialCapacity) { 20 super(initialCapacity); 21 this.keys = new ArrayList (initialCapacity); 22 } 23 Object [] getKeys(){ 24 return keys.toArray(); 25 } 26 void build(Object key, Object val){ 27 if(containsKey(key)){ 28 throw new IllegalArgumentException ("duplicate key: "+key); 29 } 30 keys.add(key); 31 super.put(key, val); 32 } 33 public String toText(){ 34 final StringBuffer buf = new StringBuffer (); 35 final int sz = keys.size(); 36 buf.append('{'); 37 for(int i=0; i<sz; i++){ 38 final Object key = keys.get(i); 39 if(i>0) 40 buf.append(','); 41 buf.append(key).append('=').append(get(key)); 42 } 43 buf.append('}'); 44 return buf.toString(); 45 } 46 } 47 | Popular Tags |