src/net/java/sip/communicator/impl/protocol/jabber/ServerStoredContactListJabberImpl.java
/**
     * Creates the corresponding event and notifies all
     * <tt>ServerStoredGroupListener</tt>s that the source group has been
     * removed, changed, renamed or whatever happened to it.
     * @param group the ContactGroup that has been created/modified/removed
     * @param eventID the id of the event to generate.
     */
Creates the corresponding event and notifies all
ServerStoredGroupListeners that the source group has been
removed, changed, renamed or whatever happened to it.
@param group the ContactGroup that has been created/modified/removed
@param eventID the id of the event to generate.
Creates the corresponding event and notifies all ServerStoredGroupListeners that the source group has been removed changed renamed or whatever happened to it . @param group the ContactGroup that has been created / modified / removed @param eventID the id of the event to generate .
void fireGroupEvent(ContactGroupJabberImpl group, int eventID)
    {
        if(parentOperationSet == null){
            if (logger.isDebugEnabled())
                logger.debug("No presence op. set available. Bailing out.");
            return;
        }
        ServerStoredGroupEvent evt = new ServerStoredGroupEvent(
                  group
                , eventID
                , parentOperationSet.getServerStoredContactListRoot()
                , jabberProvider
                , parentOperationSet);
        if (logger.isTraceEnabled())
            logger.trace("Will dispatch the following grp event: " + evt);
        Iterable<ServerStoredGroupListener> listeners;
        synchronized (serverStoredGroupListeners)
        {
            listeners
                = new ArrayList<ServerStoredGroupListener>(
                        serverStoredGroupListeners);
        }
        /**
         * Sometimes contact statuses are received before the groups and
         * contacts are being created. This is a problem when we don't have
         * already created unresolved contacts. So we will check contact
         * statuses to be sure they are correct.
         */
        if(eventID == ServerStoredGroupEvent.GROUP_CREATED_EVENT)
        {
            Iterator<Contact> iter = group.contacts();
            while (iter.hasNext())
            {
                ContactJabberImpl c = (ContactJabberImpl)iter.next();
                if(roster != null)
                {
                    parentOperationSet.firePresenceStatusChanged(
                            roster.getPresence(c.getAddressAsJid().asBareJid()));
                }
            }
        }
        for (ServerStoredGroupListener listener : listeners)
        {
            if (eventID == ServerStoredGroupEvent.GROUP_REMOVED_EVENT)
                listener.groupRemoved(evt);
            else if (eventID == ServerStoredGroupEvent.GROUP_RENAMED_EVENT)
                listener.groupNameChanged(evt);
            else if (eventID == ServerStoredGroupEvent.GROUP_CREATED_EVENT)
                listener.groupCreated(evt);
            else if (eventID == ServerStoredGroupEvent.GROUP_RESOLVED_EVENT)
                listener.groupResolved(evt);
        }
    }
void fireGroupEvent ( ContactGroupJabberImpl group , int eventID ) { if ( parentOperationSet == null ) { if ( logger . isDebugEnabled ( ) ) logger . debug ( "No presence op. set available. Bailing out." ) ; return ; } ServerStoredGroupEvent evt = new ServerStoredGroupEvent ( group , eventID , parentOperationSet . getServerStoredContactListRoot ( ) , jabberProvider , parentOperationSet ) ; if ( logger . isTraceEnabled ( ) ) logger . trace ( "Will dispatch the following grp event: " + evt ) ; Iterable < ServerStoredGroupListener > listeners ; synchronized ( serverStoredGroupListeners ) { listeners = new ArrayList < ServerStoredGroupListener > ( serverStoredGroupListeners ) ; } /**
         * Sometimes contact statuses are received before the groups and
         * contacts are being created. This is a problem when we don't have
         * already created unresolved contacts. So we will check contact
         * statuses to be sure they are correct.
         */ if ( eventID == ServerStoredGroupEvent . GROUP_CREATED_EVENT ) { Iterator < Contact > iter = group . contacts ( ) ; while ( iter . hasNext ( ) ) { ContactJabberImpl c = ( ContactJabberImpl ) iter . next ( ) ; if ( roster != null ) { parentOperationSet . firePresenceStatusChanged ( roster . getPresence ( c . getAddressAsJid ( ) . asBareJid ( ) ) ) ; } } } for ( ServerStoredGroupListener listener : listeners ) { if ( eventID == ServerStoredGroupEvent . GROUP_REMOVED_EVENT ) listener . groupRemoved ( evt ) ; else if ( eventID == ServerStoredGroupEvent . GROUP_RENAMED_EVENT ) listener . groupNameChanged ( evt ) ; else if ( eventID == ServerStoredGroupEvent . GROUP_CREATED_EVENT ) listener . groupCreated ( evt ) ; else if ( eventID == ServerStoredGroupEvent . GROUP_RESOLVED_EVENT ) listener . groupResolved ( evt ) ; } }
Creates the corresponding event and notifies all
 <tt>ServerStoredGroupListener</tt>s that the source group has been
 removed, changed, renamed or whatever happened to it.
Creates the corresponding event and notifies all <tt > ServerStoredGroupListener< / tt > s that the source group has been removed changed renamed or whatever happened to it .
//bail out if no one's listening // roster can be null, receiving system messages from server // before we are log in