blob: 0cc7a4887e4932ee94631a756e8152c1a959e437 [file] [log] [blame]
/*
* 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";
}
}