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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user