private String[] readStringList(boolean atom) { skipSpaces(); if (buffer[index] != '(') { // not what we expected return null; } index++; // skip '(' List<String> result = new ArrayList<String>(); skipSpaces(); if (peekByte() != ')') { do { result.add(atom ? readAtomString() : readString()); } while (index < size && buffer[index++] != ')'); } else index++; // skip ')' return result.toArray(new String[result.size()]); }
while ((s = r.readAtom()) != null) { if (s.length() == 0) { if (r.peekByte() == (byte)']') break;
while ((s = r.readAtom()) != null) { if (s.length() == 0) { if (r.peekByte() == (byte)']') break;
/** * Parse out one of the three sets of namespaces. */ private Namespace[] getNamespaces(Response r) throws ProtocolException { r.skipSpaces(); // Namespace = nil / "(" 1*( Namespace_Element) ")" if (r.peekByte() == '(') { List<Namespace> v = new ArrayList<Namespace>(); r.readByte(); do { Namespace ns = new Namespace(r); v.add(ns); } while (r.peekByte() != ')'); r.readByte(); return v.toArray(new Namespace[v.size()]); } else { String s = r.readAtom(); if (s == null) throw new ProtocolException("Expected NIL, got null"); if (!s.equalsIgnoreCase("NIL")) throw new ProtocolException("Expected NIL, got " + s); return null; } } }
int c = r.peekByte(); if (c == 'N' || c == 'n') // assume NIL return;
int c = r.peekByte(); if (c == 'N' || c == 'n') // assume NIL return;
sb.append(groupname).append(':'); List<InternetAddress> v = new ArrayList<>(); while (r.peekByte() != ')') { IMAPAddress a = new IMAPAddress(r); if (a.isEndOfGroup()) // reached end of group
sb.append(groupname).append(':'); List<InternetAddress> v = new ArrayList<InternetAddress>(); while (r.peekByte() != ')') { IMAPAddress a = new IMAPAddress(r); if (a.isEndOfGroup()) // reached end of group
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (r.readByte() != ')'); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (!r.isNextNonSpace(')')); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }
/** * Parse a QUOTA response. */ private Quota parseQuota(Response r) throws ParsingException { // quota_response ::= "QUOTA" SP astring SP quota_list String quotaRoot = r.readAtomString(); // quotaroot ::= astring Quota q = new Quota(quotaRoot); r.skipSpaces(); // quota_list ::= "(" #quota_resource ")" if (r.readByte() != '(') throw new ParsingException("parse error in QUOTA"); List<Quota.Resource> v = new ArrayList<Quota.Resource>(); while (r.peekByte() != ')') { // quota_resource ::= atom SP number SP number String name = r.readAtom(); if (name != null) { long usage = r.readLong(); long limit = r.readLong(); Quota.Resource res = new Quota.Resource(name, usage, limit); v.add(res); } } r.readByte(); q.resources = v.toArray(new Quota.Resource[v.size()]); return q; }
r.skipSpaces(); if (r.peekByte() == '"') { r.readByte(); delimiter = (char)r.readByte();
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (!r.isNextNonSpace(')')); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (r.readByte() != ')'); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (!r.isNextNonSpace(')')); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }
private void parseBodyExtension(Response r) throws ParsingException { r.skipSpaces(); byte b = r.peekByte(); if (b == '(') { r.skip(1); // skip '(' do { parseBodyExtension(r); } while (!r.isNextNonSpace(')')); } else if (Character.isDigit((char)b)) // number r.readNumber(); else // nstring r.readString(); } }