Flud+ v1.11.1.2版本的 MD5 值为:8801c2f52bfd51902dee3a73c65b73f8

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


package com.rometools.rome.io;

import com.rometools.rome.feed.WireFeed;
import com.rometools.rome.feed.impl.ConfigurableClassLoader;
import com.rometools.rome.io.impl.FeedParsers;
import com.rometools.rome.io.impl.XmlFixerReader;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.WeakHashMap;
import org.jdom2.JDOMException;
import org.jdom2.input.JDOMParseException;
import org.w3c.dom.Document;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXNotRecognizedException;
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.XMLReader;
import s2.YeuH.coEcUdmLw;
import sa.l;
import sa.n;
import t1.BXM.LFQgKHPqf;
import wa.k;
public class WireFeedInput {
    private static final InputSource EMPTY_INPUTSOURCE = new InputSource(new ByteArrayInputStream(new byte[0]));
    private static final EntityResolver RESOLVER = new EmptyEntityResolver();
    private static Map<ClassLoader, FeedParsers> clMap = new WeakHashMap();
    private boolean allowDoctypes;
    private final Locale locale;
    private final boolean validate;
    private boolean xmlHealerOn;

    public static class EmptyEntityResolver implements EntityResolver {
        private EmptyEntityResolver() {
        }

        @Override
        public InputSource resolveEntity(String str, String str2) {
            if (str2 == null || !str2.endsWith(".dtd")) {
                return null;
            }
            return WireFeedInput.EMPTY_INPUTSOURCE;
        }
    }

    public WireFeedInput() {
        this(false, Locale.US);
    }

    public WireFeedInput(boolean z10, Locale locale) {
        this.allowDoctypes = false;
        this.validate = false;
        this.xmlHealerOn = true;
        this.locale = locale;
    }

    private static FeedParsers getFeedParsers() {
        FeedParsers feedParsers;
        synchronized (WireFeedInput.class) {
            try {
                ClassLoader classLoader = ConfigurableClassLoader.INSTANCE.getClassLoader();
                feedParsers = clMap.get(classLoader);
                if (feedParsers == null) {
                    feedParsers = new FeedParsers();
                    clMap.put(classLoader, feedParsers);
                }
            } catch (Throwable th) {
                throw th;
            }
        }
        return feedParsers;
    }

    public static List<String> getSupportedFeedTypes() {
        return getFeedParsers().getSupportedFeedTypes();
    }

    private boolean isFeatureSupported(XMLReader xMLReader, String str, boolean z10) {
        try {
            xMLReader.setFeature(str, z10);
            return true;
        } catch (SAXNotRecognizedException | SAXNotSupportedException unused) {
            return false;
        }
    }

    private void setFeature(SAXBuilder sAXBuilder, XMLReader xMLReader, String str, boolean z10) {
        if (isFeatureSupported(xMLReader, str, z10)) {
            sAXBuilder.setFeature(str, z10);
        }
    }

    public WireFeed build(File file) {
        Reader fileReader = new FileReader(file);
        try {
            if (this.xmlHealerOn) {
                fileReader = new XmlFixerReader(fileReader);
            }
            WireFeed build = build(fileReader);
            fileReader.close();
            return build;
        } catch (Throwable th) {
            fileReader.close();
            throw th;
        }
    }

    public WireFeed build(Reader reader) {
        SAXBuilder createSAXBuilder = createSAXBuilder();
        try {
            if (this.xmlHealerOn) {
                reader = new XmlFixerReader(reader);
            }
            return build(createSAXBuilder.build(reader));
        } catch (IllegalArgumentException e10) {
            throw e10;
        } catch (JDOMParseException e11) {
            throw new ParsingFeedException("Invalid XML: " + e11.getMessage(), e11);
        } catch (Exception e12) {
            throw new ParsingFeedException("Invalid XML", e12);
        }
    }

    public WireFeed build(Document document) {
        ?? obj = new Object();
        obj.f3911j = new l(0);
        try {
            n nVar = new n(null);
            obj.m(document, nVar, null, true);
            return build(nVar);
        } catch (IllegalArgumentException e10) {
            throw e10;
        } catch (Exception e11) {
            throw new ParsingFeedException("Invalid XML", e11);
        }
    }

    public WireFeed build(InputSource inputSource) {
        try {
            return build(createSAXBuilder().build(inputSource));
        } catch (IllegalArgumentException e10) {
            throw e10;
        } catch (JDOMParseException e11) {
            throw new ParsingFeedException("Invalid XML: " + e11.getMessage(), e11);
        } catch (Exception e12) {
            throw new ParsingFeedException(coEcUdmLw.vcvx, e12);
        }
    }

    public WireFeed build(n nVar) {
        WireFeedParser parserFor = getFeedParsers().getParserFor(nVar);
        if (parserFor != null) {
            return parserFor.parse(nVar, this.validate, this.locale);
        }
        throw new IllegalArgumentException("Invalid document");
    }

    public SAXBuilder createSAXBuilder() {
        SAXBuilder sAXBuilder = this.validate ? new SAXBuilder(k.f14075l) : new SAXBuilder(k.f14074k);
        sAXBuilder.setEntityResolver(RESOLVER);
        try {
            XMLReader createParser = sAXBuilder.createParser();
            setFeature(sAXBuilder, createParser, LFQgKHPqf.NJEkdNOan, false);
            setFeature(sAXBuilder, createParser, "http://xml.org/sax/features/external-parameter-entities", false);
            setFeature(sAXBuilder, createParser, "http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
            if (!this.allowDoctypes) {
                setFeature(sAXBuilder, createParser, "http://apache.org/xml/features/disallow-doctype-decl", true);
            }
            sAXBuilder.setExpandEntities(false);
            return sAXBuilder;
        } catch (JDOMException e10) {
            throw new IllegalStateException("JDOM could not create a SAX parser", e10);
        }
    }

    public boolean getXmlHealerOn() {
        return this.xmlHealerOn;
    }

    public boolean isAllowDoctypes() {
        return this.allowDoctypes;
    }

    public void setAllowDoctypes(boolean z10) {
        this.allowDoctypes = z10;
    }

    public void setXmlHealerOn(boolean z10) {
        this.xmlHealerOn = z10;
    }
}