/*
* Jicofo, the Jitsi Conference Focus.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jitsi.impl.protocol.xmpp.extensions;
import org.jivesoftware.smack.packet.*;
import org.jivesoftware.smack.provider.*;
import org.xmlpull.v1.*;
/**
* The parser of {@link MuteIq}.
*
* @author Pawel Domas
*/
public class MuteIqProvider
implements IQProvider
{
/**
* Registers this IQ provider into given <tt>ProviderManager</tt>.
* @param providerManager the <tt>ProviderManager</tt> to which this
* instance wil be bound to.
*/
public void registerMuteIqProvider(ProviderManager providerManager)
{
providerManager.addIQProvider(
MuteIq.ELEMENT_NAME,
MuteIq.NAMESPACE,
this);
}
/**
* {@inheritDoc}
*/
@Override
public IQ parseIQ(XmlPullParser parser)
throws Exception
{
String namespace = parser.getNamespace();
// Check the namespace
if (!MuteIq.NAMESPACE.equals(namespace))
{
return null;
}
String rootElement = parser.getName();
MuteIq iq;
if (MuteIq.ELEMENT_NAME.equals(rootElement))
{
iq = new MuteIq();
String jid
= parser.getAttributeValue("", MuteIq.JID_ATTR_NAME);
iq.setJid(jid);
}
else
{
return null;
}
boolean done = false;
while (!done)
{
switch (parser.next())
{
case XmlPullParser.END_TAG:
{
String name = parser.getName();
if (rootElement.equals(name))
{
done = true;
}
break;
}
case XmlPullParser.TEXT:
{
Boolean mute = Boolean.parseBoolean(parser.getText());
iq.setMute(mute);
break;
}
}
}
return iq;
}
}