Imported GNU Classpath 0.90
Imported GNU Classpath 0.90 * scripts/makemake.tcl: Set gnu/java/awt/peer/swing to ignore. * gnu/classpath/jdwp/VMFrame.java (SIZE): New constant. * java/lang/VMCompiler.java: Use gnu.java.security.hash.MD5. * java/lang/Math.java: New override file. * java/lang/Character.java: Merged from Classpath. (start, end): Now 'int's. (canonicalName): New field. (CANONICAL_NAME, NO_SPACES_NAME, CONSTANT_NAME): New constants. (UnicodeBlock): Added argument. (of): New overload. (forName): New method. Updated unicode blocks. (sets): Updated. * sources.am: Regenerated. * Makefile.in: Likewise. From-SVN: r111942
This commit is contained in:
parent
27079765d0
commit
8aa540d2f7
1367 changed files with 188789 additions and 22762 deletions
|
@ -37,6 +37,8 @@ exception statement from your version. */
|
|||
|
||||
package java.beans;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
|
@ -344,6 +346,71 @@ public class PropertyDescriptor extends FeatureDescriptor
|
|||
this.propertyEditorClass = propertyEditorClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiate a property editor using the property editor class.
|
||||
* If no property editor class has been set, this will return null.
|
||||
* If the editor class has a public constructor which takes a single
|
||||
* argument, that will be used and the bean parameter will be passed
|
||||
* to it. Otherwise, a public no-argument constructor will be used,
|
||||
* if available. This method will return null if no constructor is
|
||||
* found or if construction fails for any reason.
|
||||
* @param bean the argument to the constructor
|
||||
* @return a new PropertyEditor, or null on error
|
||||
* @since 1.5
|
||||
*/
|
||||
public PropertyEditor createPropertyEditor(Object bean)
|
||||
{
|
||||
if (propertyEditorClass == null)
|
||||
return null;
|
||||
Constructor c = findConstructor(propertyEditorClass,
|
||||
new Class[] { Object.class });
|
||||
if (c != null)
|
||||
return instantiateClass(c, new Object[] { bean });
|
||||
c = findConstructor(propertyEditorClass, null);
|
||||
if (c != null)
|
||||
return instantiateClass(c, null);
|
||||
return null;
|
||||
}
|
||||
|
||||
// Helper method to look up a constructor and return null if it is not
|
||||
// found.
|
||||
private Constructor findConstructor(Class k, Class[] argTypes)
|
||||
{
|
||||
try
|
||||
{
|
||||
return k.getConstructor(argTypes);
|
||||
}
|
||||
catch (NoSuchMethodException _)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Helper method to instantiate an object but return null on error.
|
||||
private PropertyEditor instantiateClass(Constructor c, Object[] args)
|
||||
{
|
||||
try
|
||||
{
|
||||
return (PropertyEditor) c.newInstance(args);
|
||||
}
|
||||
catch (InstantiationException _)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch (InvocationTargetException _)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch (IllegalAccessException _)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
catch (ClassCastException _)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private void findMethods(
|
||||
Class beanClass,
|
||||
String getMethodName1,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue