/** * TODO javadoc. */ public final CharSequence nextToken() throws ParseException { Event e = next(false); if (e != Event.Token) { throw new ParseException("Next event is not a Token", getIndex()); } return getEventValue(); }
@Override public EntityTag fromString(String header) { throwIllegalArgumentExceptionIfNull(header, LocalizationMessages.ENTITY_TAG_IS_NULL()); try { HttpHeaderReader reader = HttpHeaderReader.newInstance(header); Event e = reader.next(false); if (e == Event.QuotedString) { return new EntityTag(reader.getEventValue().toString()); } else if (e == Event.Token) { final CharSequence ev = reader.getEventValue(); if (ev != null && ev.length() > 0 && ev.charAt(0) == 'W') { reader.nextSeparator('/'); return new EntityTag(reader.nextQuotedString().toString(), true); } } } catch (ParseException ex) { throw new IllegalArgumentException( "Error parsing entity tag '" + header + "'", ex); } throw new IllegalArgumentException( "Error parsing entity tag '" + header + "'"); } }
/** * Create new matching entity tag out of provided header reader. * * @param reader HTTP header content reader. * @return a new matching entity tag. * @throws ParseException in case the header could not be parsed. */ public static MatchingEntityTag valueOf(HttpHeaderReader reader) throws ParseException { final CharSequence tagString = reader.getRemainder(); HttpHeaderReader.Event e = reader.next(false); if (e == HttpHeaderReader.Event.QuotedString) { return new MatchingEntityTag(reader.getEventValue().toString()); } else if (e == HttpHeaderReader.Event.Token) { CharSequence ev = reader.getEventValue(); if (ev != null && ev.length() == 1 && 'W' == ev.charAt(0)) { reader.nextSeparator('/'); return new MatchingEntityTag(reader.nextQuotedString().toString(), true); } } throw new ParseException(LocalizationMessages.ERROR_PARSING_ENTITY_TAG(tagString), reader.getIndex()); } }
/** * TODO javadoc. */ public final CharSequence nextQuotedString() throws ParseException { Event e = next(false); if (e != Event.QuotedString) { throw new ParseException("Next event is not a Quoted String", getIndex()); } return getEventValue(); }
@Override public EntityTag fromString(String header) { throwIllegalArgumentExceptionIfNull(header, LocalizationMessages.ENTITY_TAG_IS_NULL()); try { HttpHeaderReader reader = HttpHeaderReader.newInstance(header); Event e = reader.next(false); if (e == Event.QuotedString) { return new EntityTag(reader.getEventValue().toString()); } else if (e == Event.Token) { final CharSequence ev = reader.getEventValue(); if (ev != null && ev.length() > 0 && ev.charAt(0) == 'W') { reader.nextSeparator('/'); return new EntityTag(reader.nextQuotedString().toString(), true); } } } catch (ParseException ex) { throw new IllegalArgumentException( "Error parsing entity tag '" + header + "'", ex); } throw new IllegalArgumentException( "Error parsing entity tag '" + header + "'"); } }
/** * TODO javadoc. */ public final CharSequence nextToken() throws ParseException { Event e = next(false); if (e != Event.Token) { throw new ParseException("Next event is not a Token", getIndex()); } return getEventValue(); }
/** * Create new matching entity tag out of provided header reader. * * @param reader HTTP header content reader. * @return a new matching entity tag. * @throws ParseException in case the header could not be parsed. */ public static MatchingEntityTag valueOf(HttpHeaderReader reader) throws ParseException { final CharSequence tagString = reader.getRemainder(); HttpHeaderReader.Event e = reader.next(false); if (e == HttpHeaderReader.Event.QuotedString) { return new MatchingEntityTag(reader.getEventValue().toString()); } else if (e == HttpHeaderReader.Event.Token) { CharSequence ev = reader.getEventValue(); if (ev != null && ev.length() == 1 && 'W' == ev.charAt(0)) { reader.nextSeparator('/'); return new MatchingEntityTag(reader.nextQuotedString().toString(), true); } } throw new ParseException(LocalizationMessages.ERROR_PARSING_ENTITY_TAG(tagString), reader.getIndex()); } }
/** * TODO javadoc. */ public final CharSequence nextQuotedString() throws ParseException { Event e = next(false); if (e != Event.QuotedString) { throw new ParseException("Next event is not a Quoted String", getIndex()); } return getEventValue(); }
@Override public HttpHeaderReader.Event next(boolean skipWhiteSpace, boolean preserveBackslash) throws ParseException { if (isTerminated) { throw new ParseException("End of header", getIndex()); } if (reader.hasNextSeparator(',', skipWhiteSpace)) { isTerminated = true; throw new ParseException("End of header", getIndex()); } return reader.next(skipWhiteSpace, preserveBackslash); }
@Override public HttpHeaderReader.Event next(boolean skipWhiteSpace, boolean preserveBackslash) throws ParseException { if (isTerminated) { throw new ParseException("End of header", getIndex()); } if (reader.hasNextSeparator(',', skipWhiteSpace)) { isTerminated = true; throw new ParseException("End of header", getIndex()); } return reader.next(skipWhiteSpace, preserveBackslash); }
/** * TODO javadoc. */ public final void nextSeparator(char c) throws ParseException { Event e = next(false); if (e != Event.Separator) { throw new ParseException("Next event is not a Separator", getIndex()); } if (c != getEventValue().charAt(0)) { throw new ParseException("Expected separator '" + c + "' instead of '" + getEventValue().charAt(0) + "'", getIndex()); } }
/** * TODO javadoc. */ public final void nextSeparator(char c) throws ParseException { Event e = next(false); if (e != Event.Separator) { throw new ParseException("Next event is not a Separator", getIndex()); } if (c != getEventValue().charAt(0)) { throw new ParseException("Expected separator '" + c + "' instead of '" + getEventValue().charAt(0) + "'", getIndex()); } }
private CharSequence nextTokenOrQuotedString(boolean preserveBackslash) throws ParseException { Event e = next(false, preserveBackslash); if (e != Event.Token && e != Event.QuotedString) { throw new ParseException("Next event is not a Token or a Quoted String, " + getEventValue(), getIndex()); } return getEventValue(); }
private CharSequence nextTokenOrQuotedString(boolean preserveBackslash) throws ParseException { Event e = next(false, preserveBackslash); if (e != Event.Token && e != Event.QuotedString) { throw new ParseException("Next event is not a Token or a Quoted String, " + getEventValue(), getIndex()); } return getEventValue(); }
/** * TODO javadoc. */ public static Set<MatchingEntityTag> readMatchingEntityTag(String header) throws ParseException { if ("*".equals(header)) { return MatchingEntityTag.ANY_MATCH; } HttpHeaderReader reader = new HttpHeaderReaderImpl(header); Set<MatchingEntityTag> l = new HashSet<MatchingEntityTag>(1); HttpHeaderListAdapter adapter = new HttpHeaderListAdapter(reader); while (reader.hasNext()) { l.add(MATCHING_ENTITY_TAG_CREATOR.create(adapter)); adapter.reset(); if (reader.hasNext()) { reader.next(); } } return l; }
/** * TODO javadoc. */ public static Set<MatchingEntityTag> readMatchingEntityTag(String header) throws ParseException { if ("*".equals(header)) { return MatchingEntityTag.ANY_MATCH; } HttpHeaderReader reader = new HttpHeaderReaderImpl(header); Set<MatchingEntityTag> l = new HashSet<MatchingEntityTag>(1); HttpHeaderListAdapter adapter = new HttpHeaderListAdapter(reader); while (reader.hasNext()) { l.add(MATCHING_ENTITY_TAG_CREATOR.create(adapter)); adapter.reset(); if (reader.hasNext()) { reader.next(); } } return l; }
/** * Create a parameterized header from given {@link HttpHeaderReader http header reader}. * * @param reader reader to initialize new parameterized header from. * @throws ParseException if an un-expected/in-correct value is found during parsing the header. */ public ParameterizedHeader(final HttpHeaderReader reader) throws ParseException { reader.hasNext(); value = ""; while (reader.hasNext() && !reader.hasNextSeparator(';', false)) { reader.next(); value += reader.getEventValue(); } if (reader.hasNext()) { parameters = HttpHeaderReader.readParameters(reader); } if (parameters == null) { parameters = Collections.emptyMap(); } else { parameters = Collections.unmodifiableMap(parameters); } }
private static <T> List<T> readList(final List<T> l, final ListElementCreator<T> c, final String header) throws ParseException { HttpHeaderReader reader = new HttpHeaderReaderImpl(header); HttpHeaderListAdapter adapter = new HttpHeaderListAdapter(reader); while (reader.hasNext()) { l.add(c.create(adapter)); adapter.reset(); if (reader.hasNext()) { reader.next(); } } return l; } }
private static <T> List<T> readList(final List<T> l, final ListElementCreator<T> c, final String header) throws ParseException { HttpHeaderReader reader = new HttpHeaderReaderImpl(header); HttpHeaderListAdapter adapter = new HttpHeaderListAdapter(reader); while (reader.hasNext()) { l.add(c.create(adapter)); adapter.reset(); if (reader.hasNext()) { reader.next(); } } return l; } }
/** * Create a parameterized header from given {@link HttpHeaderReader http header reader}. * * @param reader reader to initialize new parameterized header from. * @throws ParseException if an un-expected/in-correct value is found during parsing the header. */ public ParameterizedHeader(final HttpHeaderReader reader) throws ParseException { reader.hasNext(); value = ""; while (reader.hasNext() && !reader.hasNextSeparator(';', false)) { reader.next(); value += reader.getEventValue(); } if (reader.hasNext()) { parameters = HttpHeaderReader.readParameters(reader); } if (parameters == null) { parameters = Collections.emptyMap(); } else { parameters = Collections.unmodifiableMap(parameters); } }