/* * Copyright 2006 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.dev.jdt; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; /** * Abstracts the implementation of making deferred binding decisions. */ public interface RebindOracle { /** * Determines which type should be substituted for the requested type. The * caller must ensure that the result type is instantiable. * * @return the substitute type name, which may be the requested type itself; * this method must not return <code>null</code> if sourceTypeName is * not <code>null</code> */ String rebind(TreeLogger logger, String sourceTypeName) throws UnableToCompleteException; }