< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/launcher/Main.java

Print this page




 460      */
 461     static class MainClassListener implements TaskListener {
 462         TypeElement mainClass;
 463 
 464         MainClassListener(JavacTask t) {
 465             t.addTaskListener(this);
 466         }
 467 
 468         @Override
 469         public void started(TaskEvent ev) {
 470             if (ev.getKind() == TaskEvent.Kind.ANALYZE && mainClass == null) {
 471                 TypeElement te = ev.getTypeElement();
 472                 if (te.getNestingKind() == NestingKind.TOP_LEVEL) {
 473                     mainClass = te;
 474                 }
 475             }
 476         }
 477     }
 478 
 479     /**
 480      * An object to encapulate the set of in-memory classes, such that
 481      * they can be written by a file manager and subsequently used by
 482      * a class loader.
 483      */
 484     private static class Context {
 485         private final Path file;
 486         private final Map<String, byte[]> inMemoryClasses = new HashMap<>();
 487 
 488         Context(Path file) {
 489             this.file = file;
 490         }
 491 
 492         JavaFileManager getFileManager(StandardJavaFileManager delegate) {
 493             return new MemoryFileManager(inMemoryClasses, delegate);
 494         }
 495 
 496         ClassLoader getClassLoader(ClassLoader parent) {
 497             return new MemoryClassLoader(inMemoryClasses, parent, file);
 498         }
 499     }
 500 




 460      */
 461     static class MainClassListener implements TaskListener {
 462         TypeElement mainClass;
 463 
 464         MainClassListener(JavacTask t) {
 465             t.addTaskListener(this);
 466         }
 467 
 468         @Override
 469         public void started(TaskEvent ev) {
 470             if (ev.getKind() == TaskEvent.Kind.ANALYZE && mainClass == null) {
 471                 TypeElement te = ev.getTypeElement();
 472                 if (te.getNestingKind() == NestingKind.TOP_LEVEL) {
 473                     mainClass = te;
 474                 }
 475             }
 476         }
 477     }
 478 
 479     /**
 480      * An object to encapsulate the set of in-memory classes, such that
 481      * they can be written by a file manager and subsequently used by
 482      * a class loader.
 483      */
 484     private static class Context {
 485         private final Path file;
 486         private final Map<String, byte[]> inMemoryClasses = new HashMap<>();
 487 
 488         Context(Path file) {
 489             this.file = file;
 490         }
 491 
 492         JavaFileManager getFileManager(StandardJavaFileManager delegate) {
 493             return new MemoryFileManager(inMemoryClasses, delegate);
 494         }
 495 
 496         ClassLoader getClassLoader(ClassLoader parent) {
 497             return new MemoryClassLoader(inMemoryClasses, parent, file);
 498         }
 499     }
 500 


< prev index next >