public void setMetaData(String key, String val) throws XMPPException, SmackException, InterruptedException {
        synchronized (this.metaData) {
            List<String> oldVals = metaData.get(key);

            if (oldVals == null || !oldVals.get(0).equals(val)) {
                oldVals.set(0, val);

                setStatus(presenceMode, maxChats);
            }
        }
    }
public void setMetaData ( String key , String val ) throws XMPPException , SmackException , InterruptedException { synchronized ( this . metaData ) { List < String > oldVals = metaData . get ( key ) ; if ( oldVals == null || ! oldVals . get ( 0 ) . equals ( val ) ) { oldVals . set ( 0 , val ) ; setStatus ( presenceMode , maxChats ) ; } } }
Allows the addition of a new key-value pair to the agent's meta data, if the value is
new data, the revised meta data will be rebroadcast in an agent's presence broadcast.

@param key the meta data key
@param val the non-null meta data value
@throws XMPPException if an exception occurs.
@throws SmackException
@throws InterruptedException