// Constructor.java - Represents a constructor for a class. /* Copyright (C) 1998, 1999 Cygnus Solutions This file is part of libgcj. This software is copyrighted work licensed under the terms of the Libgcj License. Please consult the file "LIBGCJ_LICENSE" for details. */ package java.lang.reflect; /** * @author Tom Tromey * @date December 12, 1998 */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. * Status: Incomplete: needs a private constructor, and * newInstance() needs to be written. */ public final class Constructor extends AccessibleObject implements Member { public boolean equals (Object obj) { if (! (obj instanceof Constructor)) return false; Constructor c = (Constructor) obj; return decl_class == c.decl_class && index == c.index; } public Class getDeclaringClass () { return decl_class; } public Class[] getExceptionTypes () { return (Class[]) exception_types.clone(); } public int getModifiers () { return modifiers; } public String getName () { return decl_class.getName(); } public Class[] getParameterTypes () { return (Class[]) parameter_types.clone(); } public int hashCode () { // FIXME. return getName().hashCode(); } // FIXME: this must be native. Should share implementation with // Method.invoke. public Object newInstance (Object[] args) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { return null; } public String toString () { StringBuffer b = new StringBuffer (); b.append(Modifier.toString(modifiers)); b.append(" "); b.append(getName()); b.append("("); for (int i = 0; i < parameter_types.length; ++i) { b.append(parameter_types[i].toString()); if (i < parameter_types.length - 1) b.append(","); } b.append(")"); return b.toString(); } // Can't create these. FIXME. private Constructor () { } // Declaring class. private Class decl_class; // Exception types. private Class[] exception_types; // Modifiers. private int modifiers; // Parameter types. private Class[] parameter_types; // Index of this method in declaring class' method table. private int index; }