src/net/java/sip/communicator/impl/contactlist/MetaContactImpl.java
/**
     * Removes the specified protocol specific contact from the contacts
     * encapsulated in this <code>MetaContact</code>. The method also updates
     * the total status field accordingly. And updates its ordered position
     * in its parent group. If the display name of this <code>MetaContact</code>
     * was the one of the removed contact, we update it.
     *
     * @param contact the contact to remove
     */
Removes the specified protocol specific contact from the contacts
encapsulated in this MetaContact. The method also updates
the total status field accordingly. And updates its ordered position
in its parent group. If the display name of this MetaContact
was the one of the removed contact, we update it.

@param contact the contact to remove
Removes the specified protocol specific contact from the contacts encapsulated in this MetaContact . The method also updates the total status field accordingly . And updates its ordered position in its parent group . If the display name of this MetaContact was the one of the removed contact we update it . @param contact the contact to remove
void removeProtoContact(Contact contact)
    {
        synchronized (getParentGroupModLock())
        {
            if (parentGroup != null)
                parentGroup.lightRemoveMetaContact(this);
            contactsOnline -= contact.getPresenceStatus().isOnline() ? 1 : 0;
            this.protoContacts.remove(contact);
            if (defaultContact == contact)
                defaultContact = null;
            if ((protoContacts.size() > 0)
                    && displayName.equals(contact.getDisplayName()))
            {
                displayName = getDefaultContact().getDisplayName();
            }
            if (parentGroup != null)
                parentGroup.lightAddMetaContact(this);
            ProtocolProviderService contactProvider
                = contact.getProtocolProvider();
            OperationSetContactCapabilities capOpSet
                = contactProvider
                    .getOperationSet(OperationSetContactCapabilities.class);
            if (capOpSet != null)
            {
                removeCapabilities(contact,
                    capOpSet.getSupportedOperationSets(contact));
            }
        }
    }
void removeProtoContact ( Contact contact ) { synchronized ( getParentGroupModLock ( ) ) { if ( parentGroup != null ) parentGroup . lightRemoveMetaContact ( this ) ; contactsOnline -= contact . getPresenceStatus ( ) . isOnline ( ) ? 1 : 0 ; this . protoContacts . remove ( contact ) ; if ( defaultContact == contact ) defaultContact = null ; if ( ( protoContacts . size ( ) > 0 ) && displayName . equals ( contact . getDisplayName ( ) ) ) { displayName = getDefaultContact ( ) . getDisplayName ( ) ; } if ( parentGroup != null ) parentGroup . lightAddMetaContact ( this ) ; ProtocolProviderService contactProvider = contact . getProtocolProvider ( ) ; OperationSetContactCapabilities capOpSet = contactProvider . getOperationSet ( OperationSetContactCapabilities . class ) ; if ( capOpSet != null ) { removeCapabilities ( contact , capOpSet . getSupportedOperationSets ( contact ) ) ; } } }
Removes the specified protocol specific contact from the contacts
 encapsulated in this <code>MetaContact</code>.
Removes the specified protocol specific contact from the contacts encapsulated in this <code > MetaContact< / code > .
// Check if the capabilities operation set is available for this // contact and add a listener to it in order to track capabilities' // changes for all contained protocol contacts.