//[fiJava5+] //[ifJava4] public String randString(int maxlen) { int len = sr.nextInt(maxlen); StringBuffer sb = new StringBuffer(len); BitSet b = new BitSet(); if (sr.nextBoolean() && len == 0) len = 1; for (int i = 0; i < len; i++) { boolean taint = sr.nextInt(p) == 0 && p > 0; sb.append((char) sr.nextInt(0xffff + 1)); b.set(sb.length() - 1, taint); } return new String(sb.toString(), new Taint(b, sb.length())); }
public String[] randStringArray(int maxlen) { List l = new ArrayList(); int len = sr.nextInt(maxlen); while (len >= 0) { String s = randString(len); l.add(s); len -= s.length(); } return (String[]) l.toArray(new String[l.size()]); }
//[ifJava5+] public String randString(int maxlen) { int len = sr.nextInt(maxlen); StringBuilder sb = new StringBuilder(len); BitSet b = new BitSet(); if (sr.nextBoolean() && len == 0) len = 1; for (int i = 0; i < len; i++) { int c, clen; boolean taint = sr.nextInt(p) == 0 && p > 0; int oldlen = sb.length(); c = Character.MIN_CODE_POINT + sr.nextInt( Character.MAX_CODE_POINT - Character.MIN_CODE_POINT); sb.append(Character.toChars(c)); clen = Character.charCount(c); for (int j = 0; j < clen; j++) b.set(oldlen + j, taint); } return new String(sb.toString(), new Taint(b, sb.length())); }
public Hashtable randHashtable(int maxlen) { Hashtable h = new Hashtable(); int len = sr.nextInt(maxlen); while (len >= 0) { String key = randString(len); String[] value = randStringArray(len); len -= key.length(); for (int i = 0; i < value.length; i++) len -= value[i].length(); h.put(key, value); } return h; }