com.google.gwt.uibinder.rebind.MonitoredLogger Maven / Gradle / Ivy
/*
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
*
* 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.google.gwt.uibinder.rebind;
import com.google.gwt.core.ext.TreeLogger;
/**
* Handy for logging a bunch of errors and then dying later. Keeps a hasErrors
* flag that is set if any errors are logged.
*/
public class MonitoredLogger {
private boolean hasErrors = false;
private final MortalLogger logger;
public MonitoredLogger(MortalLogger mortalLogger) {
this.logger = mortalLogger;
}
/**
* Post an error. Sets the {@link #hasErrors} flag
*/
public void error(String message, Object... params) {
hasErrors = true;
logger.getTreeLogger().log(TreeLogger.ERROR, String.format(message, params));
}
public void error(XMLElement context, String message, Object... params) {
hasErrors = true;
logger.logLocation(TreeLogger.ERROR, context, String.format(message, params));
}
/**
* Returns true if {@link #error} has ever been called.
*/
public boolean hasErrors() {
return hasErrors;
}
}