if ( ( methodName.startsWith( "set" ) )
&& ( methodName.endsWith( propertyName ) ) )
{
Class[] parameterTypes = methods[j].getParameterTypes( );
if( parameterTypes.length != 1 ) {
new ErrorManager().error(
"Only one Parameter is allowed for the setter " +
" Method: " + methodName +
" has invalid signature", new Exception(),
ErrorManager.GENERIC_FAILURE );
}
String parameterType = parameterTypes[0].getName();
Object[] parameters = new Object[1];
if( parameterType.equals( "java.lang.String") ) {
parameters[0] = propertyValue;
} else if( parameterType.equals( "byte" ) ) {
parameters[0] =
new Byte( propertyValue.getBytes()[0]);
} else if( parameterType.equals( "int" ) ) {
parameters[0] = new Integer(propertyValue);
} else if( parameterType.equals( "float" ) ) {
parameters[0] = new Float(propertyValue);
} else if( parameterType.equals( "double") ) {
parameters[0] = new Double(propertyValue);
} else if( parameterType.equals( "char" ) ) {
parameters[0] =
new Character(propertyValue.charAt(0));
} else if( parameterType.equals("boolean") ) {
parameters[0] = new Boolean(propertyValue);
} else if( parameterType.equals("long") ) {
parameters[0] = new Long(propertyValue);
} else if( parameterType.equals("short") ) {
parameters[0] = new Short(propertyValue);
} else {
new ErrorManager().error(
"Only the basic primitive types can be set " +
"as properties to NotificationListener and " +
" NotificationFilter ", new Exception(),
ErrorManager.GENERIC_FAILURE );
continue;
}
methods[j].invoke( o, parameters );
}
}
}
} catch( Exception e ) {
new ErrorManager().error(
"Error While Setting properties to Notification Listener or " +
" Filter ", e, ErrorManager.GENERIC_FAILURE );
}
}