private static List<MediaType> parseMediaList(CSSTextScanner scan) throws SAXException { ArrayList<MediaType> typeList = new ArrayList<MediaType>(); while (!scan.empty()) { String type = scan.nextToken(','); try { typeList.add(MediaType.valueOf(type)); } catch (IllegalArgumentException e) { throw new SAXException("Invalid @media type list"); } // If there is a comma, keep looping, otherwise break if (!scan.skipCommaWhitespace()) break; } return typeList; }
/* * Parse a selector group (eg. E, F, G). In many/most cases there will be only one entry. */ private List<Selector> parseSelectorGroup(CSSTextScanner scan) throws SAXException { if (scan.empty()) return null; ArrayList<Selector> selectorGroup = new ArrayList<Selector>(1); Selector selector = new Selector(); while (!scan.empty()) { if (scan.nextSimpleSelector(selector)) { // If there is a comma, keep looping, otherwise break if (!scan.skipCommaWhitespace()) continue; // if not a comma, go back and check for next part of selector selectorGroup.add(selector); selector = new Selector(); } else break; } if (!selector.isEmpty()) selectorGroup.add(selector); return selectorGroup; }