CryptoMessage v1.3.2版本的 MD5 值为:66c611ce56a11450659dc23697562928

以下内容为反编译后的 FailureProvider.java 源代码,内容仅作参考


package org.jivesoftware.smack.compress.provider;

import java.io.IOException;
import java.util.logging.Logger;
import org.jivesoftware.smack.compress.packet.Failure;
import org.jivesoftware.smack.packet.AbstractStreamOpen;
import org.jivesoftware.smack.packet.StanzaError;
import org.jivesoftware.smack.packet.XmlEnvironment;
import org.jivesoftware.smack.parsing.SmackParsingException;
import org.jivesoftware.smack.provider.NonzaProvider;
import org.jivesoftware.smack.util.PacketParserUtils;
import org.jivesoftware.smack.xml.XmlPullParser;
import org.jivesoftware.smack.xml.XmlPullParserException;

public final class FailureProvider extends NonzaProvider<Failure> {
    private static final Logger LOGGER = Logger.getLogger(FailureProvider.class.getName());
    public static final FailureProvider INSTANCE = new FailureProvider();

    private FailureProvider() {
    }

    @Override
    public Failure parse(XmlPullParser xmlPullParser, int i, XmlEnvironment xmlEnvironment) throws XmlPullParserException, IOException, SmackParsingException {
        XmlEnvironment from = XmlEnvironment.from(xmlPullParser, xmlEnvironment);
        Failure.CompressFailureError compressFailureError = null;
        StanzaError stanzaError = null;
        while (true) {
            int i2 = AnonymousClass1.$SwitchMap$org$jivesoftware$smack$xml$XmlPullParser$Event[xmlPullParser.next().ordinal()];
            char c = 2;
            if (i2 == 1) {
                String name = xmlPullParser.getName();
                String namespace = xmlPullParser.getNamespace();
                namespace.hashCode();
                switch (namespace.hashCode()) {
                    case -1665385119:
                        if (namespace.equals("jabber:client")) {
                            c = 0;
                            break;
                        }
                        break;
                    case -1213499175:
                        if (namespace.equals(AbstractStreamOpen.SERVER_NAMESPACE)) {
                            c = 1;
                            break;
                        }
                        break;
                    case 2117926358:
                        break;
                }
                c = 65535;
                switch (c) {
                    case 0:
                    case 1:
                        name.hashCode();
                        if (name.equals("error")) {
                            stanzaError = PacketParserUtils.parseError(xmlPullParser, from);
                            break;
                        } else {
                            LOGGER.warning("Unknown element in " + namespace + ": " + name);
                            break;
                        }
                    case 2:
                        compressFailureError = Failure.CompressFailureError.valueOf(name.replace("-", "_"));
                        if (compressFailureError != null) {
                            break;
                        } else {
                            LOGGER.warning("Unknown element in http://jabber.org/protocol/compress: " + name);
                            break;
                        }
                }
            } else if (i2 == 2 && xmlPullParser.getDepth() == i) {
                return new Failure(compressFailureError, stanzaError);
            }
        }
    }

    public static class AnonymousClass1 {
        static final int[] $SwitchMap$org$jivesoftware$smack$xml$XmlPullParser$Event;

        static {
            int[] iArr = new int[XmlPullParser.Event.values().length];
            $SwitchMap$org$jivesoftware$smack$xml$XmlPullParser$Event = iArr;
            try {
                iArr[XmlPullParser.Event.START_ELEMENT.ordinal()] = 1;
            } catch (NoSuchFieldError unused) {
            }
            try {
                $SwitchMap$org$jivesoftware$smack$xml$XmlPullParser$Event[XmlPullParser.Event.END_ELEMENT.ordinal()] = 2;
            } catch (NoSuchFieldError unused2) {
            }
        }
    }
}