SynthParser.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:openjdk-jdk10 作者:
/**
 * Parses a set of styles from <code>inputStream</code>, adding the
 * resulting styles to the passed in DefaultSynthStyleFactory.
 * Resources are resolved either from a URL or from a Class. When calling
 * this method, one of the URL or the Class must be null but not both at
 * the same time.
 *
 * @param inputStream XML document containing the styles to read
 * @param factory DefaultSynthStyleFactory that new styles are added to
 * @param urlResourceBase the URL used to resolve any resources, such as Images
 * @param classResourceBase the Class used to resolve any resources, such as Images
 * @param defaultsMap Map that UIDefaults properties are placed in
 */
public void parse(InputStream inputStream,
                  DefaultSynthStyleFactory factory,
                  URL urlResourceBase, Class<?> classResourceBase,
                  Map<String, Object> defaultsMap)
                  throws ParseException, IllegalArgumentException {
    if (inputStream == null || factory == null ||
        (urlResourceBase == null && classResourceBase == null)) {
        throw new IllegalArgumentException(
            "You must supply an InputStream, StyleFactory and Class or URL");
    }

    assert(!(urlResourceBase != null && classResourceBase != null));

    _factory = factory;
    _classResourceBase = classResourceBase;
    _urlResourceBase = urlResourceBase;
    _defaultsMap = defaultsMap;
    try {
        try {
            SAXParser saxParser = SAXParserFactory.newInstance().
                                               newSAXParser();
            saxParser.parse(new BufferedInputStream(inputStream), this);
        } catch (ParserConfigurationException e) {
            throw new ParseException("Error parsing: " + e, 0);
        }
        catch (SAXException se) {
            throw new ParseException("Error parsing: " + se + " " +
                                     se.getException(), 0);
        }
        catch (IOException ioe) {
            throw new ParseException("Error parsing: " + ioe, 0);
        }
    } finally {
        reset();
    }
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号