1 16 package com.google.gwt.core.ext.typeinfo; 17 18 import java.util.ArrayList ; 19 import java.util.Arrays ; 20 import java.util.HashMap ; 21 import java.util.Iterator ; 22 import java.util.List ; 23 import java.util.Map ; 24 import java.util.Set ; 25 26 class MetaData implements HasMetaData { 27 28 private final Map tagNameToStringArrayList = new HashMap (); 29 30 public void addMetaData(String tagName, String [] values) { 31 List list = (List ) tagNameToStringArrayList.get(tagName); 32 if (list == null) { 33 list = new ArrayList (); 34 tagNameToStringArrayList.put(tagName, list); 35 } 36 list.add(values); 39 } 40 41 public String [][] getMetaData(String tagName) { 42 List list = (List ) tagNameToStringArrayList.get(tagName); 43 if (list != null) { 44 return (String [][]) list.toArray(TypeOracle.NO_STRING_ARR_ARR); 45 } else { 46 return TypeOracle.NO_STRING_ARR_ARR; 47 } 48 } 49 50 public String [] getMetaDataTags() { 51 return (String []) tagNameToStringArrayList.keySet().toArray( 52 TypeOracle.NO_STRINGS); 53 } 54 55 public String toString() { 56 StringBuffer sb = new StringBuffer (); 57 final Set keys = tagNameToStringArrayList.keySet(); 58 String [] tags = (String []) keys.toArray(TypeOracle.NO_STRINGS); 59 Arrays.sort(tags); 60 for (int i = 0; i < tags.length; i++) { 61 sb.append(tags[i]); 62 sb.append(" => "); 63 64 boolean isFirstList = true; 65 List stringArrayList = (List ) tagNameToStringArrayList.get(tags[i]); 66 for (Iterator iter = stringArrayList.iterator(); iter.hasNext();) { 67 if (isFirstList) { 68 isFirstList = false; 69 } else { 70 sb.append(", "); 71 } 72 sb.append('['); 73 String [] values = (String []) iter.next(); 74 boolean needComma = false; 75 for (int j = 0; j < values.length; j++) { 76 if (needComma) { 77 sb.append(", "); 78 } else { 79 needComma = true; 80 } 81 sb.append(values[j]); 82 } 83 sb.append(']'); 84 } 85 } 86 return sb.toString(); 87 } 88 } 89 | Popular Tags |