public SequentialListenerManager addListenerExecutor(int index,Listener listener,ListenerExecutor executor){
  if (listeners.contains(listener))   throw new IllegalArgumentException("Cannot add listener twice " + listener);
  listeners.add(index,listener);
  listenerExecutors.add(index,executor);
  return this;
}

public SequentialListenerManager addListenerExecutor ( int index , Listener listener , ListenerExecutor executor ) { if ( listeners . contains ( listener ) ) throw new IllegalArgumentException ( "Cannot add listener twice " + listener ) ; listeners . add ( index , listener ) ; listenerExecutors . add ( index , executor ) ; return this ; }
add a listener at the given index to be executed by the supplied executor
