< 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 >