Package com.google.gwt.inject.rebind

Source Code of com.google.gwt.inject.rebind.ErrorManager

/*
* Copyright 2010 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.inject.rebind;

import com.google.gwt.core.ext.TreeLogger;
import com.google.gwt.core.ext.UnableToCompleteException;
import com.google.gwt.inject.rebind.binding.Binding;
import com.google.gwt.inject.rebind.util.PrettyPrinter;
import com.google.inject.Inject;
import com.google.inject.Key;
import com.google.inject.Singleton;

/**
* Manages errors that occur during the binding process.  Keeps track of whether
* we've found an error so we can eventually throw an
* {@link UnableToCompleteException}. We do this instead of throwing
* immediately so that we can find more than one error per compilation cycle.
*/
@Singleton
public class ErrorManager {
  private boolean foundError = false;
  private final TreeLogger logger;

  @Inject
  public ErrorManager(TreeLogger logger) {
    this.logger = logger;
  }

  public void logDoubleBind(Key<?> key, Binding binding1, GinjectorBindings ginjector1,
      Binding binding2, GinjectorBindings ginjector2) {
    logError("Key %s is Double-bound: Bound at %s in %s and %s in %s", key,
        binding1.getContext(), ginjector1, binding2.getContext(), ginjector2);
  }

  public void logError(String message, Object... args) {
    logError(message, null, (Object[]) args);
  }

  public void logError(String message, Throwable t, Object... args) {
    logger.log(TreeLogger.ERROR, PrettyPrinter.format(message, args), t);
    foundError = true;
  }

  public void checkForError() throws UnableToCompleteException {
    if (foundError) {
      throw new UnableToCompleteException();
    }
  }
}
TOP

Related Classes of com.google.gwt.inject.rebind.ErrorManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.