@Override public String getHeaderField(final String field) { final List<String> values = headers.get(field); final StringBuilder sb = new StringBuilder(); for (final String v : values) sb.append(v).append(';'); return sb.substring(0, sb.length() - 1); }
/** * Returns a string representation of all found arguments. * * @param args array with arguments * @return string representation */ static String foundArgs(final Value[] args) { // compose found arguments final StringBuilder sb = new StringBuilder(); for (final Value v : args) { if (sb.length() != 0) sb.append(", "); sb.append(v instanceof Jav ? Util.className(((Jav) v).toJava()) : v.seqType()); } return sb.toString(); }
/** * Splits the string and returns an array. * * @param str string to be split * @return array */ private static String[] split(final String str) { final int l = str.length(); final String[] split = new String[l]; int s = 0; char delim = 0; final StringBuilder sb = new StringBuilder(); for (int i = 0; i < l; ++i) { final char c = str.charAt(i); if (delim == 0) { if (c == '\'' || c == '"') { delim = c; } else if (!XMLToken.isChar(c) && c != '@' && c != '=' && c != '<' && c != '>' && c != '~') { if (sb.length() != 0) { split[s++] = sb.toString(); sb.setLength(0); } } else { sb.append(c); } } else { if (c == delim) { delim = 0; if (sb.length() != 0) { split[s++] = sb.toString(); sb.setLength(0); } } else { if (c != '\'' && c != '"') sb.append(c); } } } if (sb.length() != 0) split[s++] = sb.toString(); return Array.copyOf(split, s); }
/** * Returns a number character sequence. * * @param tb token builder * @param n number to be formatted * @param mp marker parser * @param form language-dependent formatter * @param start start character */ private static void number( final TokenBuilder tb, final long n, final FormatParser mp, final Formatter form, final int start) { // count optional-digit-signs final String pres = mp.pres; int o = 0; for (int i = 0; i < pres.length(); ++i) { if (pres.charAt(i) == '#') ++o; } // count digits int d = 0; for (int i = 0; i < pres.length(); ++i) { final char ch = pres.charAt(i); if (ch >= start && ch <= start + 9) ++d; } // create string representation and build string final String s = Long.toString(n); final StringBuilder tmp = new StringBuilder(); final int r = o + d - s.length(); for (int i = r; i > o; i--) tmp.append((char) start); for (int i = 0; i < s.length(); i++) { tmp.append((char) (s.charAt(i) - '0' + start)); } for (int p = pres.length() - 1, t = tmp.length() - 1; p >= 0 && t >= 0; p--, t--) { final char ch = pres.charAt(p); if (ch < start && ch > start + 9 && ch != '#') tmp.insert(t, ch); } // add ordinal suffix tb.add(tmp.toString()).add(form.ordinal(n, mp.ord)); }
/** * Returns whether the following token exists (using wildcards). * * @return result of check */ private boolean moreWC() { final StringBuilder word = new StringBuilder(); final int size = tokenList.size(); boolean period = false, bs = false, more = false; for (; cpos < size; cpos++) { String cSrfc = tokenList.get(cpos).getSurface(); final boolean cMark = tokenList.get(cpos).isMark(); String nSrfc = null; boolean nMark = false; if (cpos < size - 1) { nSrfc = tokenList.get(cpos + 1).getSurface(); nMark = tokenList.get(cpos + 1).isMark(); } if (nSrfc != null) { if ("\\".equals(cSrfc)) bs = true; // delimiter if (cMark && !isFtChar(cSrfc) || "\\".equals(cSrfc) && nMark) { period = false; bs = false; if (word.length() != 0) { more = true; break; } if ("\\".equals(cSrfc) && nMark) cpos++; continue; } word.append(cSrfc); if (bs || "\\".equals(nSrfc)) { more = true; continue; } if (".".equals(cSrfc) || ".".equals(nSrfc)) { period = true; continue; } if (period) { if ("{".equals(cSrfc)) { cpos++; for (; cpos < size; cpos++) { cSrfc = tokenList.get(cpos).getSurface(); word.append(cSrfc); if ("}".equals(cSrfc)) { more = true; break; } } cpos++; break; } continue; } } else { // last token. if (cMark) { if ("\\".equals(cSrfc)) continue; if (word.length() != 0) { word.append(cSrfc); } more = true; continue; } } if (period) { word.append(cSrfc); } else { if (bs) if (!isFtChar(cSrfc)) word.append(cSrfc); else word.setLength(0); } more = true; cpos++; break; } if (more) { currToken = word.length() == 0 ? tokenList.get(cpos - 1) : new Morpheme(word.toString(), MEISHI_FEATURE); } return more; }
/** * Parses and returns a string result. * * @param input input string or {@code null} if invalid * @param cmd referring command; if specified, the result must not be empty * @return string result or {@code null} * @throws QueryException query exception */ private String finish(final StringBuilder input, final Cmd cmd) throws QueryException { if (input != null && input.length() != 0) return input.toString(); if (cmd != null) throw help(null, cmd); return null; }