code: public void broadcast(BehaviorEvent event)
      {
          if (event == null)
          {
              throw new NullPointerException("event");
          }
          
          if (_behaviorListeners != null)
          {
              // This code prevent listeners from unregistering themselves while processing the event.
              // I believe it should always be alright in this case. However, the need rise, then it 
              // should be possible to remove that limitation by using a clone for the looping
              for (int i = 0; i < _behaviorListeners.size() ; i++)
              {
                  BehaviorListener listener = _behaviorListeners.get(i);
                  if (event.isAppropriateListener(listener))
                  {
                      event.processListener(listener);
                  }
              }
          }
      }
docs: {@inheritDoc}