< prev index next >

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

Print this page

        

*** 23,33 **** --- 23,35 ---- 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,86 **** header_jsb = new JavaSourceBuilderExt(); enums = new ArrayList<>(); } @Override ! public void 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); enums.forEach(header_jsb::addNestedType); header_jsb.classEnd(); String src = header_jsb.build(); try { Path srcPath = srcDir.resolve(forwarderName + ".java"); Files.write(srcPath, List.of(src)); } catch (Exception ex) { handleException(ex); } } @Override public Boolean visitVar(VarTree varTree, JType jt) { if (super.visitVar(varTree, jt)) { String fieldName = varTree.name(); --- 58,92 ---- header_jsb = new JavaSourceBuilderExt(); enums = new ArrayList<>(); } @Override ! 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); ! 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 >