From 28c3554085d470abf0e2d984b9e387f864bd72f3 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Fri, 5 Sep 2014 00:29:07 +0200 Subject: [PATCH] Use switch/case in MUCUserProvider --- .../smackx/muc/provider/MUCUserProvider.java | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java index 1506859b6..85ebe70f3 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/muc/provider/MUCUserProvider.java @@ -39,35 +39,38 @@ public class MUCUserProvider implements PacketExtensionProvider { * @throws Exception if a parsing error occurs. */ public PacketExtension parseExtension(XmlPullParser parser) throws Exception { + final int initialDepth = parser.getDepth(); MUCUser mucUser = new MUCUser(); - boolean done = false; - while (!done) { - int eventType = parser.next(); - if (eventType == XmlPullParser.START_TAG) { - if (parser.getName().equals("invite")) { + outerloop: while (true) { + switch (parser.next()) { + case XmlPullParser.START_TAG: + switch (parser.getName()) { + case "invite": mucUser.setInvite(parseInvite(parser)); - } - if (parser.getName().equals("item")) { + break; + case "item": mucUser.setItem(MUCParserUtils.parseItem(parser)); - } - if (parser.getName().equals("password")) { + break; + case "password": mucUser.setPassword(parser.nextText()); - } - if (parser.getName().equals("status")) { + break; + case "status": String statusString = parser.getAttributeValue("", "code"); mucUser.addStatusCode(MUCUser.Status.create(statusString)); - } - if (parser.getName().equals("decline")) { + break; + case "decline": mucUser.setDecline(parseDecline(parser)); - } - if (parser.getName().equals("destroy")) { + break; + case "destroy": mucUser.setDestroy(MUCParserUtils.parseDestroy(parser)); + break; } - } - else if (eventType == XmlPullParser.END_TAG) { - if (parser.getName().equals("x")) { - done = true; + break; + case XmlPullParser.END_TAG: + if (parser.getDepth() == initialDepth) { + break outerloop; } + break; } }