Parser
Date: 2015-12-02

org.w3c.css.sac

## Interface Parser

-     public interface Parser

  Basic interface for CSS (Simple API for CSS) parsers.

  All CSS parsers must implement this basic interface: it allows applications to register handlers for different types of events and to initiate a parse from a URI, or a character stream.

  All CSS parsers must also implement a zero-argument constructor (though other constructors are also allowed).

  CSS parsers are reusable but not re-entrant: the application may reuse a parser object (possibly with a different input source) once the first parse has completed successfully, but it may not invoke the parse() methods recursively within a parse.

  See Also:
    `DocumentHandler`, `ErrorHandler`, `InputSource`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getParserVersion()` Returns a string about which CSS language is supported by this parser.
    `boolean` | `parsePriority(InputSource source)` Parse a CSS priority value (e.g.
    `LexicalUnit` | `parsePropertyValue(InputSource source)` Parse a CSS property value.
    `void` | `parseRule(InputSource source)` Parse a CSS rule.
    `SelectorList` | `parseSelectors(InputSource source)` Parse a comma separated list of selectors.
    `void` | `parseStyleDeclaration(InputSource source)` Parse a CSS style declaration (without '{' and '}').
    `void` | `parseStyleSheet(InputSource source)` Parse a CSS document.
    `void` | `parseStyleSheet(java.lang.String uri)` Parse a CSS document from a URI.
    `void` | `setConditionFactory(ConditionFactory conditionFactory)`
    `void` | `setDocumentHandler(DocumentHandler handler)` Allow an application to register a document event handler.
    `void` | `setErrorHandler(ErrorHandler handler)` Allow an application to register an error event handler.
    `void` | `setLocale(java.util.Locale locale)` Allow an application to request a locale for errors and warnings.
    `void` | `setSelectorFactory(SelectorFactory selectorFactory)`

- - ### Method Detail

    - #### setLocale

          void setLocale(java.util.Locale locale)
                         throws CSSException

      Allow an application to request a locale for errors and warnings.

      CSS parsers are not required to provide localisation for errors and warnings; if they cannot support the requested locale, however, they must throw a CSS exception. Applications may not request a locale change in the middle of a parse.

      Parameters:
        `locale` - A Java Locale object.
      Throws:
        `CSSException` - Throws an exception (using the previous or default locale) if the requested locale is not supported.
      See Also:
        `CSSException`, `CSSParseException`

    - #### setDocumentHandler

          void setDocumentHandler(DocumentHandler handler)

      Allow an application to register a document event handler.

      If the application does not register a document handler, all document events reported by the CSS parser will be silently ignored (this is the default behaviour implemented by HandlerBase).

      Applications may register a new or different handler in the middle of a parse, and the CSS parser must begin using the new handler immediately.

      Parameters:
        `handler` - The document handler.
      See Also:
        `DocumentHandler`

    - #### setSelectorFactory

          void setSelectorFactory(SelectorFactory selectorFactory)

    - #### setConditionFactory

          void setConditionFactory(ConditionFactory conditionFactory)

    - #### setErrorHandler

          void setErrorHandler(ErrorHandler handler)

      Allow an application to register an error event handler.

      If the application does not register an error event handler, all error events reported by the CSS parser will be silently ignored, except for fatalError, which will throw a CSSException (this is the default behaviour implemented by HandlerBase).

      Applications may register a new or different handler in the middle of a parse, and the CSS parser must begin using the new handler immediately.

      Parameters:
        `handler` - The error handler.
      See Also:
        `ErrorHandler`, `CSSException`

    - #### parseStyleSheet

          void parseStyleSheet(InputSource source)
                               throws CSSException,
                                      java.io.IOException

      Parse a CSS document.

      The application can use this method to instruct the CSS parser to begin parsing an CSS document from any valid input source (a character stream, a byte stream, or a URI).

      Applications may not invoke this method while a parse is in progress (they should create a new Parser instead for each additional CSS document). Once a parse is complete, an application may reuse the same Parser object, possibly with a different input source.

      Parameters:
        `source` - The input source for the top-level of the CSS document.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.
      See Also:
        `InputSource`, `parseStyleSheet(java.lang.String)`, `setDocumentHandler(org.w3c.css.sac.DocumentHandler)`, `setErrorHandler(org.w3c.css.sac.ErrorHandler)`

    - #### parseStyleSheet

          void parseStyleSheet(java.lang.String uri)
                               throws CSSException,
                                      java.io.IOException

      Parse a CSS document from a URI.

      This method is a shortcut for the common case of reading a document from a URI. It is the exact equivalent of the following:

           parse(new InputSource(uri));

      The URI must be fully resolved by the application before it is passed to the parser.

      Parameters:
        `uri` - The URI.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.
      See Also:
        `parseStyleSheet(InputSource)`

    - #### parseStyleDeclaration

          void parseStyleDeclaration(InputSource source)
                                     throws CSSException,
                                            java.io.IOException

      Parse a CSS style declaration (without '{' and '}').
      Parameters:
        `styleValue` - The declaration.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.

    - #### parseRule

          void parseRule(InputSource source)
                         throws CSSException,
                                java.io.IOException

      Parse a CSS rule.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.

    - #### getParserVersion

          java.lang.String getParserVersion()

      Returns a string about which CSS language is supported by this parser. For CSS Level 1, it returns "http://www.w3.org/TR/REC-CSS1", for CSS Level 2, it returns "http://www.w3.org/TR/REC-CSS2". Note that a "CSSx" parser can return lexical unit other than those allowed by CSS Level x but this usage is not recommended.

    - #### parseSelectors

          SelectorList parseSelectors(InputSource source)
                                      throws CSSException,
                                             java.io.IOException

      Parse a comma separated list of selectors.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.

    - #### parsePropertyValue

          LexicalUnit parsePropertyValue(InputSource source)
                                         throws CSSException,
                                                java.io.IOException

      Parse a CSS property value.
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.

    - #### parsePriority

          boolean parsePriority(InputSource source)
                                throws CSSException,
                                       java.io.IOException

      Parse a CSS priority value (e.g. "!important").
      Throws:
        `CSSException` - Any CSS exception, possibly wrapping another exception.
        `java.io.IOException` - An IO exception from the parser, possibly from a byte stream or character stream supplied by the application.