< prev index next >

src/jdk.jshell/share/classes/jdk/jshell/MemoryFileManager.java

Print this page

        

*** 28,39 **** import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; import java.net.URI; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.util.Collection; --- 28,37 ----
*** 69,82 **** private ClassFileCreationListener classListener = null; private final JShell proc; - // Upcoming Jigsaw - private Method inferModuleNameMethod = null; - private Method listLocationsForModulesMethod = null; - Iterable<? extends Path> getLocationAsPaths(Location loc) { return this.stdFileManager.getLocationAsPaths(loc); } static abstract class MemoryJavaFileObject extends SimpleJavaFileObject { --- 67,76 ----
*** 182,228 **** public JavaFileObject createSourceFileObject(Object origin, String name, String code) { return new SourceMemoryJavaFileObject(origin, name, code); } - // Make compatible with Jigsaw - public String inferModuleName(Location location) { - try { - if (inferModuleNameMethod == null) { - inferModuleNameMethod = JavaFileManager.class.getDeclaredMethod("inferModuleName", Location.class); - } - @SuppressWarnings("unchecked") - String result = (String) inferModuleNameMethod.invoke(stdFileManager, location); - return result; - } catch (NoSuchMethodException | SecurityException ex) { - throw new InternalError("Cannot lookup JavaFileManager method", ex); - } catch (IllegalAccessException | - IllegalArgumentException | - InvocationTargetException ex) { - throw new InternalError("Cannot invoke JavaFileManager method", ex); - } - } - - // Make compatible with Jigsaw - public Iterable<Set<Location>> listLocationsForModules(Location location) throws IOException { - try { - if (listLocationsForModulesMethod == null) { - listLocationsForModulesMethod = JavaFileManager.class.getDeclaredMethod("listLocationsForModules", Location.class); - } - @SuppressWarnings("unchecked") - Iterable<Set<Location>> result = (Iterable<Set<Location>>) listLocationsForModulesMethod.invoke(stdFileManager, location); - return result; - } catch (NoSuchMethodException | SecurityException ex) { - throw new InternalError("Cannot lookup JavaFileManager method", ex); - } catch (IllegalAccessException | - IllegalArgumentException | - InvocationTargetException ex) { - throw new InternalError("Cannot invoke JavaFileManager method", ex); - } - } - - /** * Returns a class loader for loading plug-ins from the given location. For * example, to load annotation processors, a compiler will request a class * loader for the {@link * StandardLocation#ANNOTATION_PROCESSOR_PATH --- 176,185 ----
*** 578,587 **** --- 535,564 ---- ", packageName: " + packageName + ", relativeName: " + relativeName + ", sibling: " + sibling); } + @Override + public Location getLocationForModule(Location location, String moduleName) throws IOException { + return stdFileManager.getLocationForModule(location, moduleName); + } + + @Override + public Location getLocationForModule(Location location, JavaFileObject fo, String pkgName) throws IOException { + return stdFileManager.getLocationForModule(location, fo, pkgName); + } + + @Override + public String inferModuleName(Location location) throws IOException { + return stdFileManager.inferModuleName(location); + } + + @Override + public Iterable<Set<Location>> listLocationsForModules(Location location) throws IOException { + return stdFileManager.listLocationsForModules(location); + } + /** * Flushes any resources opened for output by this file manager * directly or indirectly. Flushing a closed file manager has no * effect. *
< prev index next >