diff --git a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java index 0ad337c82..e843fd619 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/provider/EmbeddedExtensionProvider.java @@ -81,33 +81,33 @@ import org.xmlpull.v1.XmlPullParserException; * * @author Robin Collier */ -abstract public class EmbeddedExtensionProvider extends PacketExtensionProvider -{ +public abstract class EmbeddedExtensionProvider extends PacketExtensionProvider { @Override - final public PE parse(XmlPullParser parser, int initialDepth) - throws XmlPullParserException, IOException, SmackException { - String namespace = parser.getNamespace(); - String name = parser.getName(); - Map attMap = new HashMap(); - - for(int i=0; i attMap = new HashMap<>(attributeCount); + + for (int i = 0; i < attributeCount; i++) { + attMap.put(parser.getAttributeName(i), parser.getAttributeValue(i)); } - List extensions = new ArrayList(); - int tag; - do - { - tag = parser.next(); + List extensions = new ArrayList<>(); + int event; + do { + event = parser.next(); - if (tag == XmlPullParser.START_TAG) + if (event == XmlPullParser.START_TAG) PacketParserUtils.addPacketExtension(extensions, parser); - } while (!(tag == XmlPullParser.END_TAG && parser.getDepth() == initialDepth)); + } + while (!(event == XmlPullParser.END_TAG && parser.getDepth() == initialDepth)); - return createReturnExtension(name, namespace, attMap, extensions); - } + return createReturnExtension(name, namespace, attMap, extensions); + } - abstract protected PE createReturnExtension(String currentElement, String currentNamespace, Map attributeMap, List content); + protected abstract PE createReturnExtension(String currentElement, String currentNamespace, + Map attributeMap, List content); }