< prev index next >
src/jdk.jextract/share/classes/com/sun/tools/jextract/JType.java
Print this page
*** 20,39 ****
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.tools.jextract;
- import jdk.internal.org.objectweb.asm.ClassVisitor;
import java.foreign.memory.Callback;
import java.foreign.memory.Pointer;
import java.util.Objects;
- import static jdk.internal.org.objectweb.asm.Opcodes.ACC_ABSTRACT;
- import static jdk.internal.org.objectweb.asm.Opcodes.ACC_INTERFACE;
- import static jdk.internal.org.objectweb.asm.Opcodes.ACC_PUBLIC;
- import static jdk.internal.org.objectweb.asm.Opcodes.ACC_STATIC;
-
/**
* A Java Type descriptor
*/
public abstract class JType {
--- 20,33 ----
*** 42,55 ****
*
* @return The type descriptor as defined in JVMS 4.3
*/
public abstract String getDescriptor();
- public void visitInner(ClassVisitor cv) {}
-
- public String getSignature(boolean isArgument) { return getDescriptor(); }
-
public abstract String getSourceSignature(boolean isArgument);
public final static JType Void = new PrimitiveType("V", of(Void.class), "void");
public final static JType Byte = new PrimitiveType("B", of(Byte.class), "byte");
public final static JType Bool = new PrimitiveType("Z", of(Boolean.class), "boolean");
--- 36,45 ----
*** 181,198 ****
return clsName.substring(packageEnd + 1);
} else {
return clsName;
}
}
-
- @Override
- public void visitInner(ClassVisitor cv) {
- if (enclosingName != null) {
- cv.visitInnerClass(clsName, enclosingName, simpleName,
- ACC_PUBLIC | ACC_STATIC | ACC_ABSTRACT | ACC_INTERFACE);
- }
- }
}
public final static class ArrayType extends JType {
final JType elementType;
--- 171,180 ----
*** 204,230 ****
public String getDescriptor() {
return JType.of(java.foreign.memory.Array.class).getDescriptor();
}
@Override
- public void visitInner(ClassVisitor cv) {
- elementType.visitInner(cv);
- }
-
- @Override
- public String getSignature(boolean isArgument) {
- StringBuilder sb = new StringBuilder();
- sb.append("L");
- sb.append(java.foreign.memory.Array.class.getName().replace('.', '/'));
- sb.append("<");
- JType pt = elementType;
- sb.append(pt.box().getSignature(isArgument));
- sb.append(">;");
- return sb.toString();
- }
-
- @Override
public String getSourceSignature(boolean isArgument) {
StringBuilder sb = new StringBuilder();
sb.append("Array"); // java.foreign.memory.* will be imported
sb.append("<");
JType pt = elementType;
--- 186,195 ----
*** 279,312 ****
@Override
public String getSourceSignature(boolean isArgument) {
throw new UnsupportedOperationException();
}
- @Override
- public void visitInner(ClassVisitor cv) {
- returnType.visitInner(cv);
- for (JType at : args) {
- at.visitInner(cv);
- }
- }
-
- @Override
- public String getSignature(boolean isArgument) {
- StringBuilder sb = new StringBuilder();
- sb.append('(');
- // ensure sequence
- for (int i = 0; i < args.length; i++) {
- sb.append(args[i].getSignature(true));
- }
- if (isVarArgs) {
- sb.append("[Ljava/lang/Object;");
- }
- sb.append(')');
- sb.append(returnType.getSignature(false));
- return sb.toString();
- }
-
public String getNativeDescriptor() {
return layout.toString();
}
}
--- 244,253 ----
*** 319,334 ****
}
Function getFunction() {
return fn;
}
-
- @Override
- public void visitInner(ClassVisitor cv) {
- fn.visitInner(cv);
- super.visitInner(cv);
- }
}
public static class GenericType extends ClassType {
JType targ;
--- 260,269 ----
*** 340,367 ****
public JType getTypeArgument() {
return targ;
}
@Override
- public String getSignature(boolean isArgument) {
- StringBuilder sb = new StringBuilder();
- sb.append("L");
- sb.append(clsName);
- sb.append("<");
- if (targ == JType.Void && isArgument) {
- sb.append("*");
- } else {
- if (targ instanceof GenericType && isArgument) {
- sb.append("+");
- }
- sb.append(targ.box().getSignature(isArgument));
- }
- sb.append(">;");
- return sb.toString();
- }
-
- @Override
public String getSourceSignature(boolean isArgument) {
StringBuilder sb = new StringBuilder();
sb.append(super.getSourceSignature(isArgument));
sb.append("<");
if (targ == JType.Void && isArgument) {
--- 275,284 ----
*** 381,393 ****
}
public static GenericType ofCallback(JType targ) {
return new GenericType(JType.binaryName(Callback.class), targ);
}
-
- @Override
- public void visitInner(ClassVisitor cv) {
- targ.visitInner(cv);
- super.visitInner(cv);
- }
}
}
--- 298,304 ----
< prev index next >