# Class EventSetDescriptor

java.lang.Object
java.beans.FeatureDescriptor
java.beans.EventSetDescriptor

public class EventSetDescriptor extends FeatureDescriptor
An EventSetDescriptor describes a group of events that a given Java bean fires.

The given group of events are all delivered as method calls on a single event listener interface, and an event listener object can be registered via a call on a registration method supplied by the event source.

Since:
  1.1

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String listenerMethodName)`
  Creates an `EventSetDescriptor` assuming that you are following the most simple standard design pattern where a named event "fred" is (1) delivered as a call on the single method of interface FredListener, (2) has a single argument of type FredEvent, and (3) where the FredListener may be registered with a call on an addFredListener method of the source component and removed with a call on a removeFredListener method.
  `EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName)`
  Creates an `EventSetDescriptor` from scratch using string names.
  `EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName, String getListenerMethodName)`
  This constructor creates an EventSetDescriptor from scratch using string names.
  `EventSetDescriptor(String eventSetName, Class<?> listenerType, MethodDescriptor[] listenerMethodDescriptors, Method addListenerMethod, Method removeListenerMethod)`
  Creates an `EventSetDescriptor` from scratch using `java.lang.reflect.MethodDescriptor` and `java.lang.Class` objects.
  `EventSetDescriptor(String eventSetName, Class<?> listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod)`
  Creates an `EventSetDescriptor` from scratch using `java.lang.reflect.Method` and `java.lang.Class` objects.
  `EventSetDescriptor(String eventSetName, Class<?> listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod, Method getListenerMethod)`
  This constructor creates an EventSetDescriptor from scratch using java.lang.reflect.Method and java.lang.Class objects.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Method`
  `getAddListenerMethod()`
  Gets the method used to add event listeners.
  `Method`
  `getGetListenerMethod()`
  Gets the method used to access the registered event listeners.
  `MethodDescriptor[]`
  `getListenerMethodDescriptors()`
  Gets the `MethodDescriptor`s of the target listener interface.
  `Method[]`
  `getListenerMethods()`
  Gets the methods of the target listener interface.
  `Class<?>`
  `getListenerType()`
  Gets the `Class` object for the target interface.
  `Method`
  `getRemoveListenerMethod()`
  Gets the method used to remove event listeners.
  `boolean`
  `isInDefaultEventSet()`
  Reports if an event set is in the "default" set.
  `boolean`
  `isUnicast()`
  Normally event sources are multicast.
  `void`
  `setInDefaultEventSet(boolean inDefaultEventSet)`
  Marks an event set as being in the "default" set (or not).
  `void`
  `setUnicast(boolean unicast)`
  Mark an event set as unicast (or not).

  ### Methods declared in class FeatureDescriptor

  `attributeNames, getDisplayName, getName, getShortDescription, getValue, isExpert, isHidden, isPreferred, setDisplayName, setExpert, setHidden, setName, setPreferred, setShortDescription, setValue, toString`

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### EventSetDescriptor

    public EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String listenerMethodName) throws IntrospectionException
    Creates an `EventSetDescriptor` assuming that you are following the most simple standard design pattern where a named event "fred" is (1) delivered as a call on the single method of interface FredListener, (2) has a single argument of type FredEvent, and (3) where the FredListener may be registered with a call on an addFredListener method of the source component and removed with a call on a removeFredListener method.
    Parameters:
      `sourceClass` - The class firing the event.
      `eventSetName` - The programmatic name of the event. E.g. "fred". Note that this should normally start with a lower-case character.
      `listenerType` - The target interface that events will get delivered to.
      `listenerMethodName` - The method that will get called when the event gets delivered to its target listener interface.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

  - ### EventSetDescriptor

    public EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName) throws IntrospectionException
    Creates an `EventSetDescriptor` from scratch using string names.
    Parameters:
      `sourceClass` - The class firing the event.
      `eventSetName` - The programmatic name of the event set. Note that this should normally start with a lower-case character.
      `listenerType` - The Class of the target interface that events will get delivered to.
      `listenerMethodNames` - The names of the methods that will get called when the event gets delivered to its target listener interface.
      `addListenerMethodName` - The name of the method on the event source that can be used to register an event listener object.
      `removeListenerMethodName` - The name of the method on the event source that can be used to de-register an event listener object.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

  - ### EventSetDescriptor

    public EventSetDescriptor(Class<?> sourceClass, String eventSetName, Class<?> listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName, String getListenerMethodName) throws IntrospectionException
    This constructor creates an EventSetDescriptor from scratch using string names.
    Parameters:
      `sourceClass` - The class firing the event.
      `eventSetName` - The programmatic name of the event set. Note that this should normally start with a lower-case character.
      `listenerType` - The Class of the target interface that events will get delivered to.
      `listenerMethodNames` - The names of the methods that will get called when the event gets delivered to its target listener interface.
      `addListenerMethodName` - The name of the method on the event source that can be used to register an event listener object.
      `removeListenerMethodName` - The name of the method on the event source that can be used to de-register an event listener object.
      `getListenerMethodName` - The method on the event source that can be used to access the array of event listener objects.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.
    Since:
      1.4

  - ### EventSetDescriptor

    public EventSetDescriptor(String eventSetName, Class<?> listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException
    Creates an `EventSetDescriptor` from scratch using `java.lang.reflect.Method` and `java.lang.Class` objects.
    Parameters:
      `eventSetName` - The programmatic name of the event set.
      `listenerType` - The Class for the listener interface.
      `listenerMethods` - An array of Method objects describing each of the event handling methods in the target listener.
      `addListenerMethod` - The method on the event source that can be used to register an event listener object.
      `removeListenerMethod` - The method on the event source that can be used to de-register an event listener object.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

  - ### EventSetDescriptor

    public EventSetDescriptor(String eventSetName, Class<?> listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod, Method getListenerMethod) throws IntrospectionException
    This constructor creates an EventSetDescriptor from scratch using java.lang.reflect.Method and java.lang.Class objects.
    Parameters:
      `eventSetName` - The programmatic name of the event set.
      `listenerType` - The Class for the listener interface.
      `listenerMethods` - An array of Method objects describing each of the event handling methods in the target listener.
      `addListenerMethod` - The method on the event source that can be used to register an event listener object.
      `removeListenerMethod` - The method on the event source that can be used to de-register an event listener object.
      `getListenerMethod` - The method on the event source that can be used to access the array of event listener objects.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.
    Since:
      1.4

  - ### EventSetDescriptor

    public EventSetDescriptor(String eventSetName, Class<?> listenerType, MethodDescriptor[] listenerMethodDescriptors, Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException
    Creates an `EventSetDescriptor` from scratch using `java.lang.reflect.MethodDescriptor` and `java.lang.Class` objects.
    Parameters:
      `eventSetName` - The programmatic name of the event set.
      `listenerType` - The Class for the listener interface.
      `listenerMethodDescriptors` - An array of MethodDescriptor objects describing each of the event handling methods in the target listener.
      `addListenerMethod` - The method on the event source that can be used to register an event listener object.
      `removeListenerMethod` - The method on the event source that can be used to de-register an event listener object.
    Throws:
      `IntrospectionException` - if an exception occurs during introspection.

- ## Method Details

  - ### getListenerType

    public Class<?> getListenerType()
    Gets the `Class` object for the target interface.
    Returns:
      The Class object for the target interface that will get invoked when the event is fired.

  - ### getListenerMethods

    public Method[] getListenerMethods()
    Gets the methods of the target listener interface.
    Returns:
      An array of `Method` objects for the target methods within the target listener interface that will get called when events are fired.

  - ### getListenerMethodDescriptors

    public MethodDescriptor[] getListenerMethodDescriptors()
    Gets the `MethodDescriptor`s of the target listener interface.
    Returns:
      An array of `MethodDescriptor` objects for the target methods within the target listener interface that will get called when events are fired.

  - ### getAddListenerMethod

    public Method getAddListenerMethod()
    Gets the method used to add event listeners.
    Returns:
      The method used to register a listener at the event source.

  - ### getRemoveListenerMethod

    public Method getRemoveListenerMethod()
    Gets the method used to remove event listeners.
    Returns:
      The method used to remove a listener at the event source.

  - ### getGetListenerMethod

    public Method getGetListenerMethod()
    Gets the method used to access the registered event listeners.
    Returns:
      The method used to access the array of listeners at the event source or null if it doesn't exist.
    Since:
      1.4

  - ### setUnicast

    public void setUnicast(boolean unicast)
    Mark an event set as unicast (or not).
    Parameters:
      `unicast` - True if the event set is unicast.

  - ### isUnicast

    public boolean isUnicast()
    Normally event sources are multicast. However there are some exceptions that are strictly unicast.
    Returns:
      `true` if the event set is unicast. Defaults to `false`.

  - ### setInDefaultEventSet

    public void setInDefaultEventSet(boolean inDefaultEventSet)
    Marks an event set as being in the "default" set (or not). By default this is `true`.
    Parameters:
      `inDefaultEventSet` - `true` if the event set is in the "default" set, `false` if not

  - ### isInDefaultEventSet

    public boolean isInDefaultEventSet()
    Reports if an event set is in the "default" set.
    Returns:
      `true` if the event set is in the "default" set. Defaults to `true`.