wip: icstd
This commit is contained in:
@@ -17,4 +17,22 @@ public final class BindingOverload {
|
||||
public boolean needJavaWrap = false;
|
||||
public String callSrc = "";
|
||||
public List<String> attrs = new ArrayList<String>();
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "BindingOverload{" +
|
||||
"name='" + name + '\'' +
|
||||
", moduleName='" + moduleName + '\'' +
|
||||
", mangledName='" + mangledName + '\'' +
|
||||
", bindType='" + bindType + '\'' +
|
||||
", moduleClsName='" + moduleClsName + '\'' +
|
||||
", fnType='" + fnType + '\'' +
|
||||
", ret=" + ret +
|
||||
", args=" + args +
|
||||
", argsCnt=" + argsCnt +
|
||||
", needJavaWrap=" + needJavaWrap +
|
||||
", callSrc='" + callSrc + '\'' +
|
||||
", attrs=" + attrs +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -565,7 +565,8 @@ public final class JavaBindingGenerator {
|
||||
callArgs.add(overload.args.get(i).def);
|
||||
}
|
||||
}
|
||||
generateWrapMethod(overload, overload.name, overload.name, callArgs);
|
||||
|
||||
generateWrapMethod(overload, overload.name, overload.callSrc, callArgs);
|
||||
}
|
||||
|
||||
private void generateConstructor(String genClassName, BindingOverload overload) {
|
||||
|
||||
@@ -23,10 +23,7 @@ import com.github.javaparser.ast.type.Type;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -100,6 +97,15 @@ public final class JavaBindingResolver {
|
||||
return result;
|
||||
}
|
||||
|
||||
private String getAnnotation(NodeWithAnnotations<?> node, String annName) {
|
||||
for (AnnotationExpr ann : node.getAnnotations()) {
|
||||
if (ann instanceof SingleMemberAnnotationExpr && simpleAnnotationName(ann).equals(annName) && ((SingleMemberAnnotationExpr) ann).getMemberValue() instanceof StringLiteralExpr) {
|
||||
return ((StringLiteralExpr) ((SingleMemberAnnotationExpr) ann).getMemberValue()).asString();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
private boolean hasAnnotation(NodeWithAnnotations<?> node, String annName) {
|
||||
for (AnnotationExpr ann : node.getAnnotations()) {
|
||||
if (simpleAnnotationName(ann).equals(annName)) {
|
||||
@@ -218,6 +224,7 @@ public final class JavaBindingResolver {
|
||||
VarDecl d = new VarDecl(typ);
|
||||
d.name = param.getNameAsString();
|
||||
d.nullable = hasAnnotation(param, "Nullable");
|
||||
d.def = getAnnotation(param, "ArgOverload");
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user