< prev index next >

src/jdk.jextract/share/classes/com/sun/tools/jextract/JavaSourceFactoryExt.java

Print this page

        

@@ -23,11 +23,13 @@
 package com.sun.tools.jextract;
 
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.logging.Level;
 
 import com.sun.tools.jextract.parser.MacroParser;
 import com.sun.tools.jextract.tree.Tree;

@@ -56,31 +58,35 @@
         header_jsb = new JavaSourceBuilderExt();
         enums = new ArrayList<>();
     }
 
     @Override
-    public void generate(List<Tree> decls) {
+    public Map<String, String> generate(List<Tree> decls) {
         header_jsb.addPackagePrefix(headerFile.pkgName);
         String ifaceClsName = headerFile.headerClsName;
         String forwarderName = headerFile.staticForwarderClsName;
         header_jsb.classBegin(forwarderName, false);
 
         header_jsb.addLibraryField(ifaceClsName, STATICS_LIBRARY_FIELD_NAME);
         header_jsb.emitScopeAccessor(STATICS_LIBRARY_FIELD_NAME);
 
-        super.generate(decls);
+        Map<String, String> srcMap = super.generate(decls);
         enums.forEach(header_jsb::addNestedType);
 
         header_jsb.classEnd();
         String src = header_jsb.build();
+        if (srcDir != null) {
         try {
             Path srcPath = srcDir.resolve(forwarderName + ".java");
             Files.write(srcPath, List.of(src));
         } catch (Exception ex) {
             handleException(ex);
         }
     }
+        srcMap.put(headerFile.pkgName + "." + forwarderName, src);
+        return srcMap;
+    }
 
     @Override
     public Boolean visitVar(VarTree varTree, JType jt) {
         if (super.visitVar(varTree, jt)) {
             String fieldName = varTree.name();
< prev index next >