xmlerrorreporter.java

来自「JAVA 所有包」· Java 代码 · 共 606 行 · 第 1/2 页

JAVA
606
字号
     * for the specified error domain.     *      * @param domain    The error domain.     * @param key       The key of the error message.     * @param arguments The replacement arguments for the error message,     *                  if needed.     * @param severity  The severity of the error.     *     * @see #SEVERITY_WARNING     * @see #SEVERITY_ERROR     * @see #SEVERITY_FATAL_ERROR     */    public void reportError(String domain, String key, Object[] arguments,                             short severity) throws XNIException {        reportError(fLocator, domain, key, arguments, severity);    } // reportError(String,String,Object[],short)    /**     * Reports an error at a specific location.     *      * @param location  The error location.     * @param domain    The error domain.     * @param key       The key of the error message.     * @param arguments The replacement arguments for the error message,     *                  if needed.     * @param severity  The severity of the error.     *     * @see #SEVERITY_WARNING     * @see #SEVERITY_ERROR     * @see #SEVERITY_FATAL_ERROR     */    public void reportError(XMLLocator location,                            String domain, String key, Object[] arguments,                             short severity) throws XNIException {        // REVISIT: [Q] Should we do anything about invalid severity        //              parameter? -Ac                // format error message and create parse exception        MessageFormatter messageFormatter = getMessageFormatter(domain);        String message;        if (messageFormatter != null) {            message = messageFormatter.formatMessage(fLocale, key, arguments);        }        else {            StringBuffer str = new StringBuffer();            str.append(domain);            str.append('#');            str.append(key);            int argCount = arguments != null ? arguments.length : 0;            if (argCount > 0) {                str.append('?');                for (int i = 0; i < argCount; i++) {                    str.append(arguments[i]);                    if (i < argCount -1) {                        str.append('&');                    }                }            }            message = str.toString();        }        XMLParseException parseException =             new XMLParseException(location, message);        // get error handler        XMLErrorHandler errorHandler = fErrorHandler;        if (errorHandler == null) {            if (fDefaultErrorHandler == null) {                fDefaultErrorHandler = new DefaultErrorHandler();            }            errorHandler = fDefaultErrorHandler;        }        // call error handler        switch (severity) {            case SEVERITY_WARNING: {                errorHandler.warning(domain, key, parseException);                break;            }            case SEVERITY_ERROR: {                errorHandler.error(domain, key, parseException);                break;            }            case SEVERITY_FATAL_ERROR: {                errorHandler.fatalError(domain, key, parseException);                if (!fContinueAfterFatalError) {                    throw parseException;                }                break;            }        }    } // reportError(XMLLocator,String,String,Object[],short)    //    // XMLComponent methods    //    /**     * Resets the component. The component can query the component manager     * about any features and properties that affect the operation of the     * component.     *      * @param componentManager The component manager.     *     * @throws SAXException Thrown by component on initialization error.     *                      For example, if a feature or property is     *                      required for the operation of the component, the     *                      component manager may throw a      *                      SAXNotRecognizedException or a     *                      SAXNotSupportedException.     */    public void reset(XMLComponentManager componentManager)        throws XNIException {        // features        try {            fContinueAfterFatalError = componentManager.getFeature(CONTINUE_AFTER_FATAL_ERROR);        }        catch (XNIException e) {            fContinueAfterFatalError = false;        }        // properties        fErrorHandler = (XMLErrorHandler)componentManager.getProperty(ERROR_HANDLER);    } // reset(XMLComponentManager)    /**     * Returns a list of feature identifiers that are recognized by     * this component. This method may return null if no features     * are recognized by this component.     */    public String[] getRecognizedFeatures() {        return (String[])(RECOGNIZED_FEATURES.clone());    } // getRecognizedFeatures():String[]    /**     * Sets the state of a feature. This method is called by the component     * manager any time after reset when a feature changes state.      * <p>     * <strong>Note:</strong> Components should silently ignore features     * that do not affect the operation of the component.     *      * @param featureId The feature identifier.     * @param state     The state of the feature.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setFeature(String featureId, boolean state)        throws XMLConfigurationException {        //        // Xerces features        //        if (featureId.startsWith(Constants.XERCES_FEATURE_PREFIX)) {            final int suffixLength = featureId.length() - Constants.XERCES_FEATURE_PREFIX.length();                        //            // http://apache.org/xml/features/continue-after-fatal-error            //   Allows the parser to continue after a fatal error.            //   Normally, a fatal error would stop the parse.            //            if (suffixLength == Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE.length() &&                 featureId.endsWith(Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE)) {                fContinueAfterFatalError = state;            }        }    } // setFeature(String,boolean)    // return state of given feature or false if unsupported.    public boolean getFeature(String featureId)        throws XMLConfigurationException {        //        // Xerces features        //        if (featureId.startsWith(Constants.XERCES_FEATURE_PREFIX)) {        	final int suffixLength = featureId.length() - Constants.XERCES_FEATURE_PREFIX.length();        	            //            // http://apache.org/xml/features/continue-after-fatal-error            //   Allows the parser to continue after a fatal error.            //   Normally, a fatal error would stop the parse.            //            if (suffixLength == Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE.length() &&                 featureId.endsWith(Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE)) {                return fContinueAfterFatalError ;            }        }        return false;    } // setFeature(String,boolean)    /**     * Returns a list of property identifiers that are recognized by     * this component. This method may return null if no properties     * are recognized by this component.     */    public String[] getRecognizedProperties() {        return (String[])(RECOGNIZED_PROPERTIES.clone());    } // getRecognizedProperties():String[]    /**     * Sets the value of a property. This method is called by the component     * manager any time after reset when a property changes value.      * <p>     * <strong>Note:</strong> Components should silently ignore properties     * that do not affect the operation of the component.     *      * @param propertyId The property identifier.     * @param value      The value of the property.     *     * @throws SAXNotRecognizedException The component should not throw     *                                   this exception.     * @throws SAXNotSupportedException The component should not throw     *                                  this exception.     */    public void setProperty(String propertyId, Object value)        throws XMLConfigurationException {        //        // Xerces properties        //        if (propertyId.startsWith(Constants.XERCES_PROPERTY_PREFIX)) {            final int suffixLength = propertyId.length() - Constants.XERCES_PROPERTY_PREFIX.length();            if (suffixLength == Constants.ERROR_HANDLER_PROPERTY.length() &&                 propertyId.endsWith(Constants.ERROR_HANDLER_PROPERTY)) {                fErrorHandler = (XMLErrorHandler)value;            }        }    } // setProperty(String,Object)        /**      * Returns the default state for a feature, or null if this     * component does not want to report a default value for this     * feature.     *     * @param featureId The feature identifier.     *     * @since Xerces 2.2.0     */    public Boolean getFeatureDefault(String featureId) {        for (int i = 0; i < RECOGNIZED_FEATURES.length; i++) {            if (RECOGNIZED_FEATURES[i].equals(featureId)) {                return FEATURE_DEFAULTS[i];            }        }        return null;    } // getFeatureDefault(String):Boolean    /**      * Returns the default state for a property, or null if this     * component does not want to report a default value for this     * property.      *     * @param propertyId The property identifier.     *     * @since Xerces 2.2.0     */    public Object getPropertyDefault(String propertyId) {        for (int i = 0; i < RECOGNIZED_PROPERTIES.length; i++) {            if (RECOGNIZED_PROPERTIES[i].equals(propertyId)) {                return PROPERTY_DEFAULTS[i];            }        }        return null;    } // getPropertyDefault(String):Object    /**     * Get the internal XMLErrrorHandler.     */    public XMLErrorHandler getErrorHandler() {        return fErrorHandler;    }            private ErrorHandler fSaxProxy = null;        /**     * Gets the internal XMLErrorHandler     * as SAX ErrorHandler.     */    public ErrorHandler getSAXErrorHandler() {        if( fSaxProxy==null )            fSaxProxy = new ErrorHandlerProxy() {                protected XMLErrorHandler getErrorHandler() {                    return fErrorHandler;                }            };        return fSaxProxy;    }} // class XMLErrorReporter

⌨️ 快捷键说明

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