| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php |
| * |
| * 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 com.android.sdklib.repository; |
| |
| import static org.junit.Assert.fail; |
| |
| import org.xml.sax.ErrorHandler; |
| import org.xml.sax.SAXException; |
| import org.xml.sax.SAXParseException; |
| |
| /** |
| * A SAX error handler that captures the errors and warnings. |
| * This allows us to capture *all* errors and just not get an exception on the first one. |
| */ |
| class CaptureErrorHandler implements ErrorHandler { |
| |
| private String mWarnings = ""; |
| private String mErrors = ""; |
| |
| public String getErrors() { |
| return mErrors; |
| } |
| |
| public String getWarnings() { |
| return mWarnings; |
| } |
| |
| /** |
| * Verifies if the handler captures some errors or warnings. |
| * Prints them on stderr. |
| * Also fails the unit test if any error was generated. |
| */ |
| public void verify() { |
| if (!mWarnings.isEmpty()) { |
| System.err.println(mWarnings); |
| } |
| |
| if (!mErrors.isEmpty()) { |
| System.err.println(mErrors); |
| fail(mErrors); |
| } |
| } |
| |
| /** |
| * @throws SAXException |
| */ |
| @Override |
| public void error(SAXParseException ex) throws SAXException { |
| mErrors += "Error: " + ex.getMessage() + "\n"; |
| } |
| |
| /** |
| * @throws SAXException |
| */ |
| @Override |
| public void fatalError(SAXParseException ex) throws SAXException { |
| mErrors += "Fatal Error: " + ex.getMessage() + "\n"; |
| } |
| |
| /** |
| * @throws SAXException |
| */ |
| @Override |
| public void warning(SAXParseException ex) throws SAXException { |
| mWarnings += "Warning: " + ex.getMessage() + "\n"; |
| } |
| } |