001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements. See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License. You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017 package org.apache.servicemix.validation.handler;
018
019 import javax.jbi.messaging.MessagingException;
020
021 import org.xml.sax.ErrorHandler;
022
023 public interface MessageAwareErrorHandler extends ErrorHandler {
024
025 /**
026 * Does the error handler contain any error messages?
027 *
028 * @return
029 */
030 boolean hasErrors();
031
032 /**
033 * Return the number of warnings.
034 *
035 * @return
036 */
037 int getWarningCount();
038
039 /**
040 * Return the number of errors.
041 *
042 * @return
043 */
044 int getErrorCount();
045
046 /**
047 * Return the number of fatal errors.
048 *
049 * @return
050 */
051 int getFatalErrorCount();
052
053 /**
054 * Does this ErrorHandler implementation capture error messages?
055 *
056 * @return
057 */
058 boolean capturesMessages();
059
060 /**
061 * Get the messages from this ErrorHandler in a particular format.
062 *
063 * @return
064 */
065 Object getMessagesAs(Class format) throws MessagingException;
066
067 /**
068 * Does the message support a given format?
069 *
070 * @param clazz The Class of the format for which support is required.
071 * @return
072 */
073 boolean supportsMessageFormat(Class format);
074 }