/**
   * Creates and registers a new channel of the supplied channel class, registers all events.
   *
   * @param channelClass The channel implementation to use (default is ChannelImpl).
   * @param channelName Name of the new channel.
   * @param events Set of events to register at the channel.
   * @return The newly created channel.
   */
  public Channel createChannel(
      Class<? extends Channel> channelClass,
      String channelName,
      Set<Class<? extends EventObject>> events) {
    Channel channel = getNewChannel(channelClass, channelName);
    channelRegister.registerChannel(channel);
    for (Class<? extends EventObject> eventClass : events) {
      channel.registerEvent(eventClass);
    }

    return channel;
  }
 /**
  * Creates and registers a new channel of the supplied channel class, registers all events.
  *
  * @param channelClass The channel implementation to use (default is ChannelImpl).
  * @param channelName Name of the new channel.
  * @param events Set of events to register at the channel.
  * @param listeners Listeners to register at the channel.
  * @return The newly created channel.
  */
 public ListenerChannel createChannel(
     Class<? extends ListenerChannel> channelClass,
     String channelName,
     Set<Class<? extends EventObject>> events,
     Set<EventListener> listeners) {
   ListenerChannel channel = (ListenerChannel) getNewChannel(channelClass, channelName);
   for (Class<? extends EventObject> eventClass : events) {
     channel.registerEvent(eventClass);
   }
   for (EventListener listener : listeners) {
     channel.registerListener(listener);
   }
   channelRegister.registerChannel(channel);
   return channel;
 }
 /**
  * Creates and registers a new channel of the default implementation ChannelImpl.
  *
  * @param channelClass The channel implementation to use (default is ChannelImpl).
  * @param channelName Name of the new channel
  * @return The newly created channel.
  */
 public Channel createChannel(Class<? extends Channel> channelClass, String channelName) {
   Channel channel = getNewChannel(channelClass, channelName);
   channelRegister.registerChannel(channel);
   return channel;
 }