From a63c2657c94913d72b3cd388730d61edcb09fc69 Mon Sep 17 00:00:00 2001 From: tromey Date: Sat, 16 Jul 2005 01:27:14 +0000 Subject: Major merge with Classpath. Removed many duplicate files. * HACKING: Updated.x * classpath: Imported new directory. * standard.omit: New file. * Makefile.in, aclocal.m4, configure: Rebuilt. * sources.am: New file. * configure.ac: Run Classpath configure script. Moved code around to support. Disable xlib AWT peers (temporarily). * Makefile.am (SUBDIRS): Added 'classpath' (JAVAC): Removed. (AM_CPPFLAGS): Added more -I options. (BOOTCLASSPATH): Simplified. Completely redid how sources are built. Include sources.am. * include/Makefile.am (tool_include__HEADERS): Removed jni.h. * include/jni.h: Removed (in Classpath). * scripts/classes.pl: Updated to look at built classes. * scripts/makemake.tcl: New file. * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Added -I options. (gcj_jni_invocation_compile_c_to_binary): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@102082 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/java/beans/IndexedPropertyDescriptor.java | 307 ---------------------- 1 file changed, 307 deletions(-) delete mode 100644 libjava/java/beans/IndexedPropertyDescriptor.java (limited to 'libjava/java/beans/IndexedPropertyDescriptor.java') diff --git a/libjava/java/beans/IndexedPropertyDescriptor.java b/libjava/java/beans/IndexedPropertyDescriptor.java deleted file mode 100644 index efdc7b40238..00000000000 --- a/libjava/java/beans/IndexedPropertyDescriptor.java +++ /dev/null @@ -1,307 +0,0 @@ -/* java.beans.IndexedPropertyDescriptor - Copyright (C) 1998, 2003 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.beans; - -import java.lang.reflect.Array; -import java.lang.reflect.Method; - -/** - ** IndexedPropertyDescriptor describes information about a JavaBean - ** indexed property, by which we mean an array-like property that - ** has been exposed via a pair of get and set methods and another - ** pair that allows you to get to the property by an index.

- ** - ** An example property would have four methods like this:

- ** FooBar[] getFoo()
- ** void setFoo(FooBar[])
- ** FooBar getFoo(int)
- ** void setFoo(int,FooBar)

- ** - ** The constraints put on get and set methods are:

- **

    - **
  1. There must be at least a get(int) or a set(int,...) method. - ** Nothing else is required. Spec note:One nice restriction - ** would be that if there is a get() there must be a get(int), same - ** with set, but that is not in the spec and is fairly harmless.)
  2. - **
  3. A get array method must have signature - ** <propertyType>[] <getMethodName>()
  4. - **
  5. A set array method must have signature - ** void <setMethodName>(<propertyType>[])
  6. - **
  7. A get index method must have signature - ** <propertyType> <getMethodName>(int)
  8. - **
  9. A set index method must have signature - ** void <setMethodName>(int,<propertyType>)
  10. - **
  11. All these methods may throw any exception.
  12. - **
  13. All these methods must be public.
  14. - **
- ** - ** @author John Keiser - ** @since JDK1.1 - ** @version 1.1.0, 26 Jul 1998 - **/ - -public class IndexedPropertyDescriptor extends PropertyDescriptor { - private Class indexedPropertyType; - private Method setIndex; - private Method getIndex; - - /** Create a new IndexedPropertyDescriptor by introspection. - ** This form of constructor creates the PropertyDescriptor by - ** looking for getter methods named get<name>() - ** and setter methods named - ** set<name>() in class - ** <beanClass>, where <name> has its - ** first letter capitalized by the constructor.

- ** - ** Implementation note: If there is a get(int) method, - ** then the return type of that method is used to find the - ** remaining methods. If there is no get method, then the - ** set(int) method is searched for exhaustively and that type - ** is used to find the others.

- ** - ** Spec note: - ** If there is no get(int) method and multiple set(int) methods with - ** the same name and the correct parameters (different type of course), - ** then an IntrospectionException is thrown. While Sun's spec - ** does not state this, it can make Bean behavior different on - ** different systems (since method order is not guaranteed) and as - ** such, can be treated as a bug in the spec. I am not aware of - ** whether Sun's implementation catches this. - ** - ** @param name the programmatic name of the property, usually - ** starting with a lowercase letter (e.g. fooManChu - ** instead of FooManChu). - ** @param beanClass the class the get and set methods live in. - ** @exception IntrospectionException if the methods are not found or invalid. - **/ - public IndexedPropertyDescriptor(String name, Class beanClass) throws IntrospectionException { - super(name); - String capitalized; - try { - capitalized = Character.toUpperCase(name.charAt(0)) + name.substring(1); - } catch(StringIndexOutOfBoundsException e) { - capitalized = ""; - } - findMethods(beanClass, "get" + capitalized, "set" + capitalized, "get" + capitalized, "set" + capitalized); - } - - /** Create a new IndexedPropertyDescriptor by introspection. - ** This form of constructor allows you to specify the - ** names of the get and set methods to search for.

- ** - ** Implementation note: If there is a get(int) method, - ** then the return type of that method is used to find the - ** remaining methods. If there is no get method, then the - ** set(int) method is searched for exhaustively and that type - ** is used to find the others.

- ** - ** Spec note: - ** If there is no get(int) method and multiple set(int) methods with - ** the same name and the correct parameters (different type of course), - ** then an IntrospectionException is thrown. While Sun's spec - ** does not state this, it can make Bean behavior different on - ** different systems (since method order is not guaranteed) and as - ** such, can be treated as a bug in the spec. I am not aware of - ** whether Sun's implementation catches this. - ** - ** @param name the programmatic name of the property, usually - ** starting with a lowercase letter (e.g. fooManChu - ** instead of FooManChu). - ** @param beanClass the class the get and set methods live in. - ** @param getMethodName the name of the get array method. - ** @param setMethodName the name of the set array method. - ** @param getIndexName the name of the get index method. - ** @param setIndexName the name of the set index method. - ** @exception IntrospectionException if the methods are not found or invalid. - **/ - public IndexedPropertyDescriptor(String name, Class beanClass, String getMethodName, String setMethodName, String getIndexName, String setIndexName) throws IntrospectionException { - super(name); - findMethods(beanClass, getMethodName, setMethodName, getIndexName, setIndexName); - } - - /** Create a new PropertyDescriptor using explicit Methods. - ** Note that the methods will be checked for conformance to standard - ** Property method rules, as described above at the top of this class. - ** - ** @param name the programmatic name of the property, usually - ** starting with a lowercase letter (e.g. fooManChu - ** instead of FooManChu). - ** @param getMethod the get array method. - ** @param setMethod the set array method. - ** @param getIndex the get index method. - ** @param setIndex the set index method. - ** @exception IntrospectionException if the methods are not found or invalid. - **/ - public IndexedPropertyDescriptor(String name, Method getMethod, Method setMethod, Method getIndex, Method setIndex) throws IntrospectionException { - super(name); - if(getMethod != null && getMethod.getParameterTypes().length > 0) { - throw new IntrospectionException("get method has parameters"); - } - if(getMethod != null && setMethod.getParameterTypes().length != 1) { - throw new IntrospectionException("set method does not have exactly one parameter"); - } - if(getMethod != null && setMethod != null) { - if(!getMethod.getReturnType().equals(setMethod.getParameterTypes()[0])) { - throw new IntrospectionException("set and get methods do not share the same type"); - } - if(!getMethod.getDeclaringClass().isAssignableFrom(setMethod.getDeclaringClass()) - && !setMethod.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass())) { - throw new IntrospectionException("set and get methods are not in the same class."); - } - } - - if(getIndex != null && (getIndex.getParameterTypes().length != 1 - || !(getIndex.getParameterTypes()[0]).equals(java.lang.Integer.TYPE))) { - throw new IntrospectionException("get index method has wrong parameters"); - } - if(setIndex != null && (setIndex.getParameterTypes().length != 2 - || !(setIndex.getParameterTypes()[0]).equals(java.lang.Integer.TYPE))) { - throw new IntrospectionException("set index method has wrong parameters"); - } - if(getIndex != null && setIndex != null) { - if(!getIndex.getReturnType().equals(setIndex.getParameterTypes()[1])) { - throw new IntrospectionException("set index methods do not share the same type"); - } - if(!getIndex.getDeclaringClass().isAssignableFrom(setIndex.getDeclaringClass()) - && !setIndex.getDeclaringClass().isAssignableFrom(getIndex.getDeclaringClass())) { - throw new IntrospectionException("get and set index methods are not in the same class."); - } - } - - if(getIndex != null && getMethod != null && !getIndex.getDeclaringClass().isAssignableFrom(getMethod.getDeclaringClass()) - && !getMethod.getDeclaringClass().isAssignableFrom(getIndex.getDeclaringClass())) { - throw new IntrospectionException("methods are not in the same class."); - } - - if(getIndex != null && getMethod != null && !Array.newInstance(getIndex.getReturnType(),0).getClass().equals(getMethod.getReturnType())) { - throw new IntrospectionException("array methods do not match index methods."); - } - - this.getMethod = getMethod; - this.setMethod = setMethod; - this.getIndex = getIndex; - this.setIndex = setIndex; - this.indexedPropertyType = getIndex != null ? getIndex.getReturnType() : setIndex.getParameterTypes()[1]; - this.propertyType = getMethod != null ? getMethod.getReturnType() : (setMethod != null ? setMethod.getParameterTypes()[0] : Array.newInstance(this.indexedPropertyType,0).getClass()); - } - - public Class getIndexedPropertyType() { - return indexedPropertyType; - } - - public Method getIndexedReadMethod() { - return getIndex; - } - - public Method getIndexedWriteMethod() { - return setIndex; - } - - private void findMethods(Class beanClass, String getMethodName, String setMethodName, String getIndexName, String setIndexName) throws IntrospectionException { - try { - if(getIndexName != null) { - try { - Class[] getArgs = new Class[1]; - getArgs[0] = java.lang.Integer.TYPE; - getIndex = beanClass.getMethod(getIndexName,getArgs); - indexedPropertyType = getIndex.getReturnType(); - } catch(NoSuchMethodException E) { - } - } - if(getIndex != null) { - if(setIndexName != null) { - try { - Class[] setArgs = new Class[2]; - setArgs[0] = java.lang.Integer.TYPE; - setArgs[1] = indexedPropertyType; - setIndex = beanClass.getMethod(setIndexName,setArgs); - if(!setIndex.getReturnType().equals(java.lang.Void.TYPE)) { - throw new IntrospectionException(setIndexName + " has non-void return type"); - } - } catch(NoSuchMethodException E) { - } - } - } else if(setIndexName != null) { - Method[] m = beanClass.getMethods(); - for(int i=0;i