From 2205c68a1470fe1547028225f82951d6914a8e7e Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sat, 8 Jan 2022 21:13:05 +0100 Subject: [PATCH] more stub methods in class Class --- .../nativecode/ReplacementForClass.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/src/de/inetsoftware/jwebassembly/module/nativecode/ReplacementForClass.java b/src/de/inetsoftware/jwebassembly/module/nativecode/ReplacementForClass.java index 15f37ae..e2d8e2c 100644 --- a/src/de/inetsoftware/jwebassembly/module/nativecode/ReplacementForClass.java +++ b/src/de/inetsoftware/jwebassembly/module/nativecode/ReplacementForClass.java @@ -29,6 +29,8 @@ import static de.inetsoftware.jwebassembly.module.TypeManager.TYPE_DESCRIPTION_I import static de.inetsoftware.jwebassembly.module.TypeManager.TYPE_DESCRIPTION_TYPE_NAME; import static de.inetsoftware.jwebassembly.module.TypeManager.VOID; +import java.io.InputStream; +import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Type; @@ -274,6 +276,13 @@ class ReplacementForClass { @WasmTextCode( "unreachable" ) // TODO public native Class getSuperclass(); + /** + * Replacement of the Java methods getPackage() + */ + public Package getPackage() { + return null; + } + /** * Replacement of the Java method getInterfaces() * @return an array of interfaces implemented by this class. @@ -327,6 +336,31 @@ class ReplacementForClass { return simpleName.substring( index ); } + /** + * Replacement of the Java method getTypeName() + * + * @return an informative string for the name of this type + */ + public String getTypeName() { + if (isArray()) { + try { + ReplacementForClass cl = this; + int dimensions = 0; + while (cl.isArray()) { + dimensions++; + cl = cl.getComponentType(); + } + StringBuilder sb = new StringBuilder(); + sb.append(cl.getName()); + for (int i = 0; i < dimensions; i++) { + sb.append("[]"); + } + return sb.toString(); + } catch (Throwable e) { /*FALLTHRU*/ } + } + return getName(); + } + /** * Replacement of the Java method getCanonicalName() * @@ -374,6 +408,19 @@ class ReplacementForClass { @WasmTextCode( "unreachable" ) // TODO public native Method getDeclaredMethod(String name, Class... parameterTypes); + /** + * Replacement of the Java method getDeclaredConstructor() + */ + @WasmTextCode( "unreachable" ) // TODO + public native Constructor getDeclaredConstructor(Class... parameterTypes); + + /** + * Replacement of the Java method getResourceAsStream() + */ + public InputStream getResourceAsStream(String name) { + return null; //TODO + } + /** * Replacement of the native Java method {@link Class#getPrimitiveClass} *