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 + -
显示快捷键?