private void readFieldNames(List<String> fieldNames, HttpHeaderReader reader) throws ParseException { if (!reader.hasNextSeparator('=', false)) { return; } reader.nextSeparator('='); fieldNames.addAll(Arrays.asList(COMMA_SEPARATED_LIST.split(reader.nextQuotedString()))); }
private void readFieldNames(List<String> fieldNames, HttpHeaderReader reader) throws ParseException { if (!reader.hasNextSeparator('=', false)) { return; } reader.nextSeparator('='); fieldNames.addAll(Arrays.asList(COMMA_SEPARATED_LIST.split(reader.nextQuotedString()))); }
private int readIntValue(HttpHeaderReader reader, String directiveName) throws ParseException { reader.nextSeparator('='); int index = reader.getIndex(); try { return Integer.parseInt(reader.nextToken().toString()); } catch (NumberFormatException nfe) { ParseException pe = new ParseException( "Error parsing integer value for " + directiveName + " directive", index); pe.initCause(nfe); throw pe; } }
private int readIntValue(HttpHeaderReader reader, String directiveName) throws ParseException { reader.nextSeparator('='); int index = reader.getIndex(); try { return Integer.parseInt(reader.nextToken().toString()); } catch (NumberFormatException nfe) { ParseException pe = new ParseException( "Error parsing integer value for " + directiveName + " directive", index); pe.initCause(nfe); throw pe; } }
/** * TODO javadoc. */ public static int readQualityFactorParameter(HttpHeaderReader reader) throws ParseException { while (reader.hasNext()) { reader.nextSeparator(';'); // Ignore a ';' with no parameters if (!reader.hasNext()) { return Quality.DEFAULT; } // Get the parameter name CharSequence name = reader.nextToken(); reader.nextSeparator('='); // Get the parameter value CharSequence value = reader.nextTokenOrQuotedString(); if (name.length() == 1 && (name.charAt(0) == 'q' || name.charAt(0) == 'Q')) { return readQualityFactor(value); } } return Quality.DEFAULT; }
/** * TODO javadoc. */ public static int readQualityFactorParameter(HttpHeaderReader reader) throws ParseException { while (reader.hasNext()) { reader.nextSeparator(';'); // Ignore a ';' with no parameters if (!reader.hasNext()) { return Quality.DEFAULT; } // Get the parameter name CharSequence name = reader.nextToken(); reader.nextSeparator('='); // Get the parameter value CharSequence value = reader.nextTokenOrQuotedString(); if (name.length() == 1 && (name.charAt(0) == 'q' || name.charAt(0) == 'Q')) { return readQualityFactor(value); } } return Quality.DEFAULT; }
reader.nextSeparator(';'); while (reader.hasNextSeparator(';', true)) { reader.next(); reader.nextSeparator('=');
reader.nextSeparator(';'); while (reader.hasNextSeparator(';', true)) { reader.next(); reader.nextSeparator('=');
@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 + "'"); } }
@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()); } }
/** * 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()); } }
/** * Create a new {@link javax.ws.rs.core.MediaType} instance from a header reader. * * @param reader header reader. * @return new {@code MediaType} instance. * * @throws ParseException in case of a header parsing error. */ public static MediaType valueOf(HttpHeaderReader reader) throws ParseException { // Skip any white space reader.hasNext(); // Get the type final String type = reader.nextToken().toString(); reader.nextSeparator('/'); // Get the subtype final String subType = reader.nextToken().toString(); Map<String, String> params = null; if (reader.hasNext()) { params = HttpHeaderReader.readParameters(reader); } return new MediaType(type, subType, params); } }
/** * Create a new {@link javax.ws.rs.core.MediaType} instance from a header reader. * * @param reader header reader. * @return new {@code MediaType} instance. * * @throws ParseException in case of a header parsing error. */ public static MediaType valueOf(HttpHeaderReader reader) throws ParseException { // Skip any white space reader.hasNext(); // Get the type final String type = reader.nextToken().toString(); reader.nextSeparator('/'); // Get the subtype final String subType = reader.nextToken().toString(); Map<String, String> params = null; if (reader.hasNext()) { params = HttpHeaderReader.readParameters(reader); } return new MediaType(type, subType, params); } }
/** * Create new quality source media type instance from the supplied * {@link HttpHeaderReader HTTP header reader}. * * @param reader HTTP header reader. * @return new acceptable media type instance. * * @throws ParseException in case the input data parsing failed. */ public static QualitySourceMediaType valueOf(HttpHeaderReader reader) throws ParseException { // Skip any white space reader.hasNext(); // Get the type String type = reader.nextToken().toString(); reader.nextSeparator('/'); // Get the subtype String subType = reader.nextToken().toString(); int qs = Quality.DEFAULT; Map<String, String> parameters = null; if (reader.hasNext()) { parameters = HttpHeaderReader.readParameters(reader); if (parameters != null) { qs = getQs(parameters.get(Quality.QUALITY_SOURCE_PARAMETER_NAME)); } } // use private constructor to skip quality value validation step return new QualitySourceMediaType(type, subType, parameters, qs); }
/** * Create new quality source media type instance from the supplied * {@link HttpHeaderReader HTTP header reader}. * * @param reader HTTP header reader. * @return new acceptable media type instance. * * @throws ParseException in case the input data parsing failed. */ public static QualitySourceMediaType valueOf(HttpHeaderReader reader) throws ParseException { // Skip any white space reader.hasNext(); // Get the type String type = reader.nextToken().toString(); reader.nextSeparator('/'); // Get the subtype String subType = reader.nextToken().toString(); int qs = Quality.DEFAULT; Map<String, String> parameters = null; if (reader.hasNext()) { parameters = HttpHeaderReader.readParameters(reader); if (parameters != null) { qs = getQs(parameters.get(Quality.QUALITY_SOURCE_PARAMETER_NAME)); } } // use private constructor to skip quality value validation step return new QualitySourceMediaType(type, subType, parameters, qs); }
String value = null; if (reader.hasNextSeparator('=', false)) { reader.nextSeparator('='); value = reader.nextTokenOrQuotedString().toString();
String value = null; if (reader.hasNextSeparator('=', false)) { reader.nextSeparator('='); value = reader.nextTokenOrQuotedString().toString();
@Override public CacheControl fromString(String header) { throwIllegalArgumentExceptionIfNull(header, LocalizationMessages.CACHE_CONTROL_IS_NULL()); try { HttpHeaderReader reader = HttpHeaderReader.newInstance(header); CacheControl cacheControl = new CacheControl(); cacheControl.setNoTransform(false); // defaults to true while (reader.hasNext()) { readDirective(cacheControl, reader); if (reader.hasNextSeparator(',', true)) { reader.nextSeparator(','); } } return cacheControl; } catch (ParseException pe) { throw new IllegalArgumentException( "Error parsing cache control '" + header + "'", pe); } }
@Override public CacheControl fromString(String header) { throwIllegalArgumentExceptionIfNull(header, LocalizationMessages.CACHE_CONTROL_IS_NULL()); try { HttpHeaderReader reader = HttpHeaderReader.newInstance(header); CacheControl cacheControl = new CacheControl(); cacheControl.setNoTransform(false); // defaults to true while (reader.hasNext()) { readDirective(cacheControl, reader); if (reader.hasNextSeparator(',', true)) { reader.nextSeparator(','); } } return cacheControl; } catch (ParseException pe) { throw new IllegalArgumentException( "Error parsing cache control '" + header + "'", pe); } }