package org.xmpp.jnodes.smack;
import org.jivesoftware.smack.provider.IQProvider;
import org.xmlpull.v1.XmlPullParser;
public class JingleTrackerProvider implements IQProvider {
public JingleTrackerIQ parseIQ(final XmlPullParser parser) throws Exception {
JingleTrackerIQ iq = new JingleTrackerIQ();
boolean done = false;
int eventType;
String elementName;
while (!done) {
eventType = parser.getEventType();
elementName = parser.getName();
if (eventType == XmlPullParser.START_TAG) {
final TrackerEntry.Type type;
if (elementName.equals(TrackerEntry.Type.relay.toString())) {
type = TrackerEntry.Type.relay;
} else if (elementName.equals(TrackerEntry.Type.tracker.toString())) {
type = TrackerEntry.Type.tracker;
} else {
parser.next();
continue;
}
final String protocol = parser.getAttributeValue(null, "protocol");
final TrackerEntry.Policy policy = TrackerEntry.Policy.valueOf("_" + parser.getAttributeValue(null, "policy"));
final String address = parser.getAttributeValue(null, "address");
final String verified = parser.getAttributeValue(null, "verified");
if (address != null && address.length() > 0) {
final TrackerEntry entry = new TrackerEntry(type, policy, address, protocol);
if (verified != null && verified.equals("true")) {
entry.setVerified(true);
}
iq.addEntry(entry);
}
} else if (eventType == XmlPullParser.END_TAG) {
if (elementName.equals(JingleTrackerIQ.NAME)) {
done = true;
}
}
if (!done) {
parser.next();
}
}
return iq;
}
}