private void parse() throws ParsingException { skipSpaces(); if (buffer[index] != '(') throw new ParsingException( "error in FETCH parsing, missing '(' at index " + index); List<Item> v = new ArrayList<Item>(); Item i = null; do { index++; // skip '(', or SPACE if (index >= size) throw new ParsingException( "error in FETCH parsing, ran off end of buffer, size " + size); i = parseItem(); if (i != null) v.add(i); else if (!parseExtensionItem()) throw new ParsingException( "error in FETCH parsing, unrecognized item at index " + index + ", starts with \"" + next20() + "\""); } while (buffer[index] != ')'); index++; // skip ')' items = v.toArray(new Item[v.size()]); }
private void parse() throws ParsingException { if (!isNextNonSpace('(')) throw new ParsingException( "error in FETCH parsing, missing '(' at index " + index); List<Item> v = new ArrayList<>(); Item i = null; skipSpaces(); do { if (index >= size) throw new ParsingException( "error in FETCH parsing, ran off end of buffer, size " + size); i = parseItem(); if (i != null) v.add(i); else if (!parseExtensionItem()) throw new ParsingException( "error in FETCH parsing, unrecognized item at index " + index + ", starts with \"" + next20() + "\""); } while (!isNextNonSpace(')')); items = v.toArray(new Item[v.size()]); }
/** * Constructor. * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public INTERNALDATE(FetchResponse r) throws ParsingException { msgno = r.getNumber(); r.skipSpaces(); String s = r.readString(); if (s == null) throw new ParsingException("INTERNALDATE is NIL"); try { synchronized (mailDateFormat) { date = mailDateFormat.parse(s); } } catch (ParseException pex) { throw new ParsingException("INTERNALDATE parse error"); } }
/** * Constructor. * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public INTERNALDATE(FetchResponse r) throws ParsingException { msgno = r.getNumber(); r.skipSpaces(); String s = r.readString(); if (s == null) throw new ParsingException("INTERNALDATE is NIL"); try { synchronized (mailDateFormat) { date = mailDateFormat.parse(s); } } catch (ParseException pex) { throw new ParsingException("INTERNALDATE parse error"); } }
/** * Constructor. * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public MODSEQ(FetchResponse r) throws ParsingException { seqnum = r.getNumber(); r.skipSpaces(); if (r.readByte() != '(') throw new ParsingException("MODSEQ parse error"); modseq = r.readLong(); if (r.readByte() != ')') throw new ParsingException("MODSEQ parse error"); } }
/** * Constructor. * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public MODSEQ(FetchResponse r) throws ParsingException { seqnum = r.getNumber(); r.skipSpaces(); if (r.readByte() != '(') throw new ParsingException("MODSEQ parse error"); modseq = r.readLong(); if (!r.isNextNonSpace(')')) throw new ParsingException("MODSEQ parse error"); } }
throw new ParsingException("ADDRESS parse error"); throw new ParsingException("ADDRESS parse error");
throw new ParsingException("ADDRESS parse error"); throw new ParsingException("ADDRESS parse error");
return null; } else throw new ParsingException("ADDRESS parse error");
throw new ParsingException("parse error in STATUS"); throw new ParsingException("parse error in STATUS"); if (attr.equalsIgnoreCase("MESSAGES")) total = r.readNumber();
System.out.println("DEBUG IMAP: parameter name " + name); if (name == null) throw new ParsingException( "BODYSTRUCTURE parse error: " + type + "/" + subtype + ": " + r.skip(2); } else throw new ParsingException("Parameter list parse error");
System.out.println("DEBUG IMAP: parameter name " + name); if (name == null) throw new ParsingException( "BODYSTRUCTURE parse error: " + type + "/" + subtype + ": " + r.skip(2); } else throw new ParsingException("Parameter list parse error");
throw new ParsingException("parse error in STATUS");
/** * Constructor * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public BODY(FetchResponse r) throws ParsingException { msgno = r.getNumber(); r.skipSpaces(); if (r.readByte() != '[') throw new ParsingException( "BODY parse error: missing ``['' at section start"); section = r.readString(']'); if (r.readByte() != ']') throw new ParsingException( "BODY parse error: missing ``]'' at section end"); isHeader = section.regionMatches(true, 0, "HEADER", 0, 6); if (r.readByte() == '<') { // origin origin = r.readNumber(); r.skip(1); // skip '>'; } else origin = 0; data = r.readByteArray(); }
throw new ParsingException("ENVELOPE parse error"); throw new ParsingException("ENVELOPE parse error");
throw new ParsingException("ENVELOPE parse error"); throw new ParsingException("ENVELOPE parse error");
return null; } else throw new ParsingException("ADDRESS parse error");
/** * Constructor * * @param r the FetchResponse * @exception ParsingException for parsing failures */ public BODY(FetchResponse r) throws ParsingException { msgno = r.getNumber(); r.skipSpaces(); if (r.readByte() != '[') throw new ParsingException( "BODY parse error: missing ``['' at section start"); section = r.readString(']'); if (r.readByte() != ']') throw new ParsingException( "BODY parse error: missing ``]'' at section end"); isHeader = section.regionMatches(true, 0, "HEADER", 0, 6); if (r.readByte() == '<') { // origin origin = r.readNumber(); r.skip(1); // skip '>'; } else origin = 0; data = r.readByteArray(); }
/** * 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<>(); while (!r.isNextNonSpace(')')) { // 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); } } q.resources = v.toArray(new Quota.Resource[v.size()]); return q; }
/** * 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; }