private void addObserver(Observer<D> observer) throws Exception { // verify this observer doesn't already exist if (observers.containsKey(observer.getName())) { throw new Exception( "Observer with name [" + observer.getName() + "] already exists (observer names MUST be unique)"); } // add to list of observers as well as group observers.put(observer.getName(), observer); this.groups.addAll(observer.getConfiguration().getGroups()); }