package extra; import net.rim.device.api.util.MultiMap; import net.rim.device.api.util.ObjectEnumerator; public class EnumLikeUsingArray implements EnumLike { private MultiMap emap; private MultiMap humanReadableMap; private ObjectEnumerator temp; private String easyIterate[]; private int pointer; private void resetKeys(){ pointer=0; } public EnumLikeUsingArray(String [] slist){ emap=new MultiMap(); humanReadableMap= new MultiMap(); int i; easyIterate=new String[slist.length]; for(i=0;i<slist.length;i++) { emap.add(slist[i],i); easyIterate[i]=slist[i]; } resetKeys(); } public EnumLikeUsingArray(String [] slist, String [] readablelist){ emap=new MultiMap(); humanReadableMap= new MultiMap(); int i; easyIterate=new String[slist.length]; for(i=0;i<slist.length;i++) { emap.add(slist[i],i); easyIterate[i]=slist[i]; } for(i=0;i<readablelist.length;i++) { humanReadableMap.add(readablelist[i],readablelist[i+1]); } resetKeys(); } /* (non-Javadoc) * @see extra.enumLike#enumval(java.lang.String) */ public int enumval(String key){ return (int)(Integer) emap.elements(key).nextElement(); } /* (non-Javadoc) * @see extra.enumLike#nextTag() */ public String nextTag(){ return easyIterate[pointer]; } } //for (fields;fields.hasMoreElements() ;) //nextElement()