langtools/test/tools/javac/processing/model/testgetallmembers/Main.java
changeset 37848 3c8ff4204d2d
parent 36526 3b41f1c69604
child 40308 274367a99f98
equal deleted inserted replaced
37743:025ef287342f 37848:3c8ff4204d2d
    31  */
    31  */
    32 
    32 
    33 import java.io.File;
    33 import java.io.File;
    34 import java.util.*;
    34 import java.util.*;
    35 import java.util.Map.Entry;
    35 import java.util.Map.Entry;
    36 import java.util.stream.StreamSupport;
       
    37 
    36 
    38 import javax.lang.model.element.Element;
    37 import javax.lang.model.element.Element;
    39 import javax.lang.model.element.ElementKind;
    38 import javax.lang.model.element.ElementKind;
    40 import javax.lang.model.element.ModuleElement;
    39 import javax.lang.model.element.ModuleElement;
    41 import javax.lang.model.element.PackageElement;
    40 import javax.lang.model.element.PackageElement;
    42 import javax.lang.model.element.TypeElement;
    41 import javax.lang.model.element.TypeElement;
    43 import javax.lang.model.util.Elements;
    42 import javax.lang.model.util.Elements;
    44 import javax.tools.*;
    43 import javax.tools.*;
    45 import javax.tools.JavaFileManager.Location;
       
    46 
    44 
    47 import com.sun.source.util.JavacTask;
    45 import com.sun.source.util.JavacTask;
    48 import com.sun.tools.javac.model.JavacElements;
    46 import com.sun.tools.javac.model.JavacElements;
    49 
    47 
    50 import static javax.tools.StandardLocation.CLASS_PATH;
    48 import static javax.tools.StandardLocation.CLASS_PATH;
    51 import static javax.tools.StandardLocation.PLATFORM_CLASS_PATH;
    49 import static javax.tools.StandardLocation.PLATFORM_CLASS_PATH;
    52 import static javax.tools.StandardLocation.SYSTEM_MODULES;
       
    53 import static javax.tools.JavaFileObject.Kind.CLASS;
    50 import static javax.tools.JavaFileObject.Kind.CLASS;
    54 
    51 
    55 
    52 
    56 public class Main {
    53 public class Main {
    57 
    54 
    65     static int progress = 0;
    62     static int progress = 0;
    66     static JavaCompiler tool;
    63     static JavaCompiler tool;
    67     static JavacTask javac;
    64     static JavacTask javac;
    68     static Elements elements;
    65     static Elements elements;
    69 
    66 
       
    67     static List<String> addmods_ALL_SYSTEM = Arrays.asList("-addmods", "ALL-SYSTEM");
       
    68 
    70     public static void main(String[] args) throws Exception {
    69     public static void main(String[] args) throws Exception {
    71         JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
    70         JavaCompiler tool = ToolProvider.getSystemJavaCompiler();
    72         try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
    71         try (StandardJavaFileManager fm = tool.getStandardFileManager(null, null, null)) {
    73             fm.setLocation(CLASS_PATH, Collections.<File>emptyList());
    72             fm.setLocation(CLASS_PATH, Collections.<File>emptyList());
    74             JavacTask javac = (JavacTask)tool.getTask(null, fm, null, null, null, null);
    73             JavacTask javac = (JavacTask)tool.getTask(null, fm, null, addmods_ALL_SYSTEM, null, null);
    75             Elements elements = javac.getElements();
    74             Elements elements = javac.getElements();
    76 
    75 
    77             final Map<String, Set<String>> packages = new LinkedHashMap<>();
    76             final Map<String, Set<String>> packages = new LinkedHashMap<>();
    78 
    77 
    79             int nestedClasses = 0;
    78             int nestedClasses = 0;
   107                 }
   106                 }
   108             }
   107             }
   109             javac = null;
   108             javac = null;
   110             elements = null;
   109             elements = null;
   111 
   110 
   112             javac = (JavacTask)tool.getTask(null, fm, null, null, null, null);
   111             javac = (JavacTask)tool.getTask(null, fm, null, addmods_ALL_SYSTEM, null, null);
   113             elements = javac.getElements();
   112             elements = javac.getElements();
   114 
   113 
   115             for (Entry<String, Set<String>> module2Packages : packages.entrySet()) {
   114             for (Entry<String, Set<String>> module2Packages : packages.entrySet()) {
   116                 ModuleElement me = elements.getModuleElement(module2Packages.getKey());
   115                 ModuleElement me = elements.getModuleElement(module2Packages.getKey());
       
   116                 me.getClass();
   117                 for (String name : module2Packages.getValue()) {
   117                 for (String name : module2Packages.getValue()) {
   118                     PackageElement pe = ((JavacElements) elements).getPackageElement(me, name);
   118                     PackageElement pe = ((JavacElements) elements).getPackageElement(me, name);
   119                     for (Element e : pe.getEnclosedElements()) {
   119                     for (Element e : pe.getEnclosedElements()) {
   120                         e.getSimpleName().getClass();
   120                         e.getSimpleName().getClass();
   121                     }
   121                     }