1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
/* * @(#)ForwardingJavaFileManager.java 1.11 06/07/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package javax.tools; import java.io.IOException; import java.net.URI; import java.util.Iterator; import java.util.Set; import javax.tools.JavaFileObject.Kind; /** * Forwards calls to a given file manager. Subclasses of this class * might override some of these methods and might also provide * additional fields and methods. * * @param <M> the kind of file manager forwarded to by this object * @author Peter von der Ahé * @since 1.6 */ public class ForwardingJavaFileManager<M extends JavaFileManager> implements JavaFileManager { /** * The file manager which all methods are delegated to. */ protected final M fileManager; /** * Creates a new instance of ForwardingJavaFileManager. * @param fileManager delegate to this file manager */ protected ForwardingJavaFileManager(M fileManager) { fileManager.getClass(); // null check this.fileManager = fileManager; } /** * @throws SecurityException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public ClassLoader getClassLoader(Location location) { return fileManager.getClassLoader(location); } /** * @throws IOException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public Iterable<JavaFileObject> list(Location location, String packageName, Set<Kind> kinds, boolean recurse) throws IOException { return fileManager.list(location, packageName, kinds, recurse); } /** * @throws IllegalStateException {@inheritDoc} */ public String inferBinaryName(Location location, JavaFileObject file) { return fileManager.inferBinaryName(location, file); } /** * @throws IllegalArgumentException {@inheritDoc} */ public boolean isSameFile(FileObject a, FileObject b) { return fileManager.isSameFile(a, b); } /** * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public boolean handleOption(String current, Iterator<String> remaining) { return fileManager.handleOption(current, remaining); } public boolean hasLocation(Location location) { return fileManager.hasLocation(location); } public int isSupportedOption(String option) { return fileManager.isSupportedOption(option); } /** * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public JavaFileObject getJavaFileForInput(Location location, String className, Kind kind) throws IOException { return fileManager.getJavaFileForInput(location, className, kind); } /** * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public JavaFileObject getJavaFileForOutput(Location location, String className, Kind kind, FileObject sibling) throws IOException { return fileManager.getJavaFileForOutput(location, className, kind, sibling); } /** * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public FileObject getFileForInput(Location location, String packageName, String relativeName) throws IOException { return fileManager.getFileForInput(location, packageName, relativeName); } /** * @throws IllegalArgumentException {@inheritDoc} * @throws IllegalStateException {@inheritDoc} */ public FileObject getFileForOutput(Location location, String packageName, String relativeName, FileObject sibling) throws IOException { return fileManager.getFileForOutput(location, packageName, relativeName, sibling); } public void flush() throws IOException { fileManager.flush(); } public void close() throws IOException { fileManager.close(); } }