package groovy; import java.beans.EventSetDescriptor; import java.beans.SimpleBeanInfo; import java.lang.reflect.Method; public class StrangeBeanBeanInfo extends SimpleBeanInfo { public EventSetDescriptor[] getEventSetDescriptors() { try { Method[] events = StrangeEventListener.class.getMethods(); Method addListener = StrangeBean.class.getMethod("addStrangeEventListener", new Class[] {StrangeEventListener.class}); Method removeListener = StrangeBean.class.getMethod("removeStrangeEventListener", new Class[] {StrangeEventListener.class}); Method getListeners = StrangeBean.class.getMethod("getStrangeEventListeners", new Class[0]); return new EventSetDescriptor[] { new EventSetDescriptor( "strangeEvent", StrangeEventListener.class, events, addListener, removeListener, getListeners) }; } catch (Exception ie) { ie.printStackTrace(System.out); return super.getEventSetDescriptors(); } } }