package com.fasterxml.jackson.databind.ext; import a.f; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.deser.std.FromStringDeserializer; import g00.a; import java.io.StringReader; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.xml.sax.InputSource; public abstract class DOMDeserializer<T> extends FromStringDeserializer<T> { private static final DocumentBuilderFactory DEFAULT_PARSER_FACTORY; private static final long serialVersionUID = 1; public static class DocumentDeserializer extends DOMDeserializer<Document> { private static final long serialVersionUID = 1; public DocumentDeserializer() { super(Document.class); } @Override // com.fasterxml.jackson.databind.deser.std.FromStringDeserializer, com.fasterxml.jackson.databind.ext.DOMDeserializer public Document _deserialize(String str, DeserializationContext deserializationContext) throws IllegalArgumentException { return parse(str); } } public static class NodeDeserializer extends DOMDeserializer<Node> { private static final long serialVersionUID = 1; public NodeDeserializer() { super(Node.class); } @Override // com.fasterxml.jackson.databind.deser.std.FromStringDeserializer, com.fasterxml.jackson.databind.ext.DOMDeserializer public Node _deserialize(String str, DeserializationContext deserializationContext) throws IllegalArgumentException { return parse(str); } } static { DocumentBuilderFactory newInstance = DocumentBuilderFactory.newInstance(); newInstance.setNamespaceAware(true); newInstance.setExpandEntityReferences(false); try { newInstance.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true); } catch (Error | ParserConfigurationException unused) { } DEFAULT_PARSER_FACTORY = newInstance; } public DOMDeserializer(Class<T> cls) { super(cls); } @Override // com.fasterxml.jackson.databind.deser.std.FromStringDeserializer public abstract T _deserialize(String str, DeserializationContext deserializationContext); public DocumentBuilder documentBuilder() throws ParserConfigurationException { return DEFAULT_PARSER_FACTORY.newDocumentBuilder(); } public final Document parse(String str) throws IllegalArgumentException { try { return documentBuilder().parse(new InputSource(new StringReader(str))); } catch (Exception e) { throw new IllegalArgumentException(a.h(e, f.h("Failed to parse JSON String as XML: ")), e); } } }