⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parsersupports.java

📁 Use the links below to download a source distribution of Ant from one of our mirrors. It is good pra
💻 JAVA
字号:
/* *  Licensed to the Apache Software Foundation (ASF) under one or more *  contributor license agreements.  See the NOTICE file distributed with *  this work for additional information regarding copyright ownership. *  The ASF licenses this file to You under the Apache License, Version 2.0 *  (the "License"); you may not use this file except in compliance with *  the License.  You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. * */package org.apache.tools.ant.taskdefs.condition;import org.apache.tools.ant.BuildException;import org.apache.tools.ant.Project;import org.apache.tools.ant.ProjectComponent;import org.apache.tools.ant.util.JAXPUtils;import org.xml.sax.SAXNotRecognizedException;import org.xml.sax.SAXNotSupportedException;import org.xml.sax.XMLReader;/** * Test for the XML parser supporting a particular feature * @since Ant 1.7 */public class ParserSupports extends ProjectComponent implements Condition {    private String feature;    private String property;    private String value;    // Error messages    /** error - combined attributes not allowed */    public static final String ERROR_BOTH_ATTRIBUTES =            "Property and feature attributes are exclusive";    /** feature */    public static final String FEATURE = "feature";    /** property */    public static final String PROPERTY = "property";    /** error - not recognized */    public static final String NOT_RECOGNIZED =            " not recognized: ";    /** error - not supported */    public static final String NOT_SUPPORTED =            " not supported: ";    /** error - missing attribute */    public static final String ERROR_NO_ATTRIBUTES =        "Neither feature or property are set";    /** error - no value */    public static final String ERROR_NO_VALUE =        "A value is needed when testing for property support";    /**     * Feature to probe for.     * @param feature the feature to probe for.     */    public void setFeature(String feature) {        this.feature = feature;    }    /**     * Property to probe for     * @param property the property to probe for.     */    public void setProperty(String property) {        this.property = property;    }    /**     * Optional value to set.     * Converted to a boolean value when setting a property     * @param value the value to set.     */    public void setValue(String value) {        this.value = value;    }    /** {@inheritDoc}. */    public boolean eval() throws BuildException {        if (feature != null && property != null) {            throw new BuildException(ERROR_BOTH_ATTRIBUTES);        }        if (feature == null && property == null) {            throw new BuildException(ERROR_NO_ATTRIBUTES);        }        //pick a value that is good for everything        if (feature != null) {            return evalFeature();        }        if (value == null) {            throw new BuildException(ERROR_NO_VALUE);        }        return evalProperty();    }    /**     * Get our reader     * @return a reader     */    private XMLReader getReader() {        JAXPUtils.getParser();        return JAXPUtils.getXMLReader();    }    /**     * Set a feature     * @return true if the feature could be set     */    public boolean evalFeature() {        XMLReader reader = getReader();        if (value == null) {            value = "true";        }        boolean v = Project.toBoolean(value);        try {            reader.setFeature(feature, v);        } catch (SAXNotRecognizedException e) {            log(FEATURE + NOT_RECOGNIZED + feature, Project.MSG_VERBOSE);            return false;        } catch (SAXNotSupportedException e) {            log(FEATURE + NOT_SUPPORTED + feature, Project.MSG_VERBOSE);            return false;        }        return true;    }    /**     * Set a property     * @return true if the feature could be set     */    public boolean evalProperty() {        XMLReader reader = getReader();        try {            reader.setProperty(property, value);        } catch (SAXNotRecognizedException e) {            log(PROPERTY + NOT_RECOGNIZED + property, Project.MSG_VERBOSE);            return false;        } catch (SAXNotSupportedException e) {            log(PROPERTY + NOT_SUPPORTED + property, Project.MSG_VERBOSE);            return false;        }        return true;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -