示例#1
0
 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;
 }
示例#2
0
  /*
   * 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;
  }