曹妃甸核酸检测平台.apk(点击下载) / ProviderManager.java


package asmack.org.jivesoftware.smack.provider;

import asmack.org.jivesoftware.smack.packet.IQ;
import asmack.org.jivesoftware.smack.packet.PacketExtension;
import java.io.InputStream;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserFactory;

public class ProviderManager {
    private static ProviderManager instance;
    private Map<String, Object> extensionProviders = new ConcurrentHashMap();
    private Map<String, Object> iqProviders = new ConcurrentHashMap();
    private Map<String, PacketProvider> packetProviders = new ConcurrentHashMap();

    private ProviderManager() {
        initialize();
    }

    private ClassLoader[] getClassLoaders() {
        ClassLoader[] classLoaderArr = {ProviderManager.class.getClassLoader(), Thread.currentThread().getContextClassLoader()};
        ArrayList arrayList = new ArrayList();
        for (ClassLoader classLoader : classLoaderArr) {
            if (classLoader != null) {
                arrayList.add(classLoader);
            }
        }
        return (ClassLoader[]) arrayList.toArray(new ClassLoader[arrayList.size()]);
    }

    public static synchronized ProviderManager getInstance() {
        ProviderManager providerManager;
        synchronized (ProviderManager.class) {
            if (instance == null) {
                instance = new ProviderManager();
            }
            providerManager = instance;
        }
        return providerManager;
    }

    private String getProviderKey(String str, String str2) {
        return "<" + str + "/><" + str2 + "/>";
    }

    public static synchronized void setInstance(ProviderManager providerManager) {
        synchronized (ProviderManager.class) {
            if (instance == null) {
                instance = providerManager;
            } else {
                throw new IllegalStateException("ProviderManager singleton already set");
            }
        }
    }

    public void addExtensionProvider(String str, String str2, Object obj) {
        if ((obj instanceof PacketExtensionProvider) || (obj instanceof Class)) {
            this.extensionProviders.put(getProviderKey(str, str2), obj);
            return;
        }
        throw new IllegalArgumentException("Provider must be a PacketExtensionProvider or a Class instance.");
    }

    public void addIQProvider(String str, String str2, Object obj) {
        if ((obj instanceof IQProvider) || ((obj instanceof Class) && IQ.class.isAssignableFrom((Class) obj))) {
            this.iqProviders.put(getProviderKey(str, str2), obj);
            return;
        }
        throw new IllegalArgumentException("Provider must be an IQProvider or a Class instance.");
    }

    public void addPacketProvider(String str, PacketProvider packetProvider) {
        this.packetProviders.put(str, packetProvider);
    }

    public Object getExtensionProvider(String str, String str2) {
        return this.extensionProviders.get(getProviderKey(str, str2));
    }

    public Collection<Object> getExtensionProviders() {
        return Collections.unmodifiableCollection(this.extensionProviders.values());
    }

    public Object getIQProvider(String str, String str2) {
        return this.iqProviders.get(getProviderKey(str, str2));
    }

    public Collection<Object> getIQProviders() {
        return Collections.unmodifiableCollection(this.iqProviders.values());
    }

    public PacketProvider getPacketProvider(String str) {
        return this.packetProviders.get(str);
    }

    /* access modifiers changed from: protected */
    /* JADX WARNING: Removed duplicated region for block: B:44:0x00fb A[SYNTHETIC, Splitter:B:44:0x00fb] */
    public void initialize() {
        Map<String, Object> map;
        Object obj;
        Map<String, Object> map2;
        Object obj2;
        try {
            for (ClassLoader classLoader : getClassLoaders()) {
                Enumeration<URL> resources = classLoader.getResources("META-INF/smack.providers");
                while (resources.hasMoreElements()) {
                    InputStream inputStream = null;
                    try {
                        InputStream openStream = resources.nextElement().openStream();
                        XmlPullParser newPullParser = XmlPullParserFactory.newInstance().newPullParser();
                        newPullParser.setFeature("http://xmlpull.org/v1/doc/features.html#process-namespaces", true);
                        newPullParser.setInput(openStream, "UTF-8");
                        int eventType = newPullParser.getEventType();
                        do {
                            if (eventType == 2) {
                                if (newPullParser.getName().equals("iqProvider")) {
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText = newPullParser.nextText();
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText2 = newPullParser.nextText();
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText3 = newPullParser.nextText();
                                    String providerKey = getProviderKey(nextText, nextText2);
                                    if (!this.iqProviders.containsKey(providerKey)) {
                                        try {
                                            Class<?> cls = Class.forName(nextText3);
                                            if (IQProvider.class.isAssignableFrom(cls)) {
                                                map2 = this.iqProviders;
                                                obj2 = cls.newInstance();
                                            } else if (IQ.class.isAssignableFrom(cls)) {
                                                map2 = this.iqProviders;
                                                obj2 = cls;
                                            }
                                            map2.put(providerKey, obj2 == 1 ? 1 : 0);
                                        } catch (ClassNotFoundException e2) {
                                            e = e2;
                                            e.printStackTrace();
                                            eventType = newPullParser.next();
                                            if (eventType == 1) {
                                            }
                                        }
                                    }
                                } else if (newPullParser.getName().equals("extensionProvider")) {
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText4 = newPullParser.nextText();
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText5 = newPullParser.nextText();
                                    newPullParser.next();
                                    newPullParser.next();
                                    String nextText6 = newPullParser.nextText();
                                    String providerKey2 = getProviderKey(nextText4, nextText5);
                                    if (!this.extensionProviders.containsKey(providerKey2)) {
                                        try {
                                            Class<?> cls2 = Class.forName(nextText6);
                                            if (PacketExtensionProvider.class.isAssignableFrom(cls2)) {
                                                map = this.extensionProviders;
                                                obj = cls2.newInstance();
                                            } else if (PacketExtension.class.isAssignableFrom(cls2)) {
                                                map = this.extensionProviders;
                                                obj = cls2;
                                            }
                                            map.put(providerKey2, obj == 1 ? 1 : 0);
                                        } catch (ClassNotFoundException e3) {
                                            e = e3;
                                            e.printStackTrace();
                                            eventType = newPullParser.next();
                                            if (eventType == 1) {
                                            }
                                        }
                                    }
                                }
                            }
                            eventType = newPullParser.next();
                        } while (eventType == 1);
                    } finally {
                        try {
                            inputStream.close();
                        } catch (Exception unused) {
                        }
                    }
                }
            }
        } catch (Exception e4) {
            e4.printStackTrace();
        }
    }

    public void removeExtensionProvider(String str, String str2) {
        this.extensionProviders.remove(getProviderKey(str, str2));
    }

    public void removeIQProvider(String str, String str2) {
        this.iqProviders.remove(getProviderKey(str, str2));
    }

    public void removePacketProvider(String str) {
        this.packetProviders.remove(str);
    }
}