class JcrObservationManager implements ObservationManager {

    @Override
    public void addEventListener( EventListener listener,
                                  int eventTypes,
                                  String absPath,
                                  boolean isDeep,
                                  String[] uuid,
                                  String[] nodeTypeName,
                                  boolean noLocal ) throws RepositoryException {
        CheckArg.isNotNull(listener, "listener");
        checkSession(); // make sure session is still active

        // create wrapper and register
        JcrListenerAdapter adapter = new JcrListenerAdapter(listener, eventTypes, absPath, isDeep, uuid, nodeTypeName, noLocal);
        if (this.repositoryObservable.register(adapter)) {
            this.listeners.add(adapter);
        }
    }

      JcrObservationManager( JcrSession session,
                           Observable repositoryObservable );

}