package totalcross.lang.reflect; public class Constructor4D implements Member4D { int mod; Object nativeStruct; // TClass String name; Class<?> declaringClass; // class that owns this method Class<?> parameterTypes[]; Class<?> exceptionTypes[]; String cached; public Class<?> getDeclaringClass() { return declaringClass; } public String getName() { return name; } public int getModifiers() { return mod; } public boolean equals(Object obj) { if (!(obj instanceof Constructor4D)) return false; Constructor4D m = (Constructor4D)obj; if (m.mod != mod || !m.name.equals(name) || !m.declaringClass.getName().equals(declaringClass.getName()) || parameterTypes.length != m.parameterTypes.length/* || exceptionTypes.length != m.exceptionTypes.length*/) return false; for (int i =0; i < parameterTypes.length; i++) if (!parameterTypes[i].equals(m.parameterTypes[i])) return false; //for (int i =0; i < exceptionTypes.length; i++) if (!exceptionTypes[i].equals(m.exceptionTypes[i])) return false; - not needed return true; } public int hashCode() { return declaringClass.getName().hashCode() ^ name.hashCode(); } public String toString() { if (cached != null) return cached; StringBuffer sb = new StringBuffer(128); // public static final void TCTestWin$TestMethod.printTest(int,short,java.lang.String,boolean,java.lang.Object,long,byte,char,double) sb.append(Modifier4D.toString(mod)); if (sb.length() > 0) sb.append(' '); sb.append(name).append('('); for (int i = 0, last = parameterTypes.length-1; i <= last; i++) { sb.append(Method4D.toString(parameterTypes[i])); if (i < last) sb.append(','); } return cached = sb.append(')').toString(); } public Class<?>[] getParameterTypes() { return parameterTypes; } public Class<?>[] getExceptionTypes() { return exceptionTypes; } public native Object newInstance(Object initargs[]) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException4D; }