1 /* 2 * Copyright (C) 2011 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.doclava; 18 19 /** 20 * Resolvable is an interface for those Java types that cannot resolve, upon first parsing 21 * the file in which the type is declared, certain types referenced by that file. 22 * 23 * <p>This interface provides a standard means of saving {@link Resolution}s that we will 24 * later resolve once we have parsed every file. This is provided via the 25 * {@link addResolution(Resolution)} method. 26 * 27 * <p>Additionally, This interface provides a standard means of resolving all resolutions 28 * via the {@link#resolveResolutions()} method. 29 */ 30 public interface Resolvable { 31 /** 32 * Adds a {@link Resolution} that will be resolved at a later time. 33 * @param resolution The {@link Resolution} to resolve at a later time. 34 */ addResolution(Resolution resolution)35 public void addResolution(Resolution resolution); 36 37 /** 38 * Resolves the {@link Resolution}s contained in this {@link Resolvable}. 39 * @return <tt>true</tt> if all resolutions were resolved. 40 * <tt>false</tt> if there are still remaining resolutions. 41 */ resolveResolutions()42 public boolean resolveResolutions(); 43 44 /** 45 * Prints the list of {@link Resolution}s that will be resolved at a later time. 46 */ printResolutions()47 public void printResolutions(); 48 } 49