.class public abstract Lcom/amazonaws/util/XpathUtils; .super Ljava/lang/Object; .source "SourceFile" # static fields .field public static factory:Ljavax/xml/parsers/DocumentBuilderFactory; .field public static log:Lcom/amazonaws/logging/Log; # direct methods .method static constructor ()V .locals 1 const-class v0, Lcom/amazonaws/util/XpathUtils; .line 46 invoke-static {v0}, Lcom/amazonaws/logging/LogFactory;->getLog(Ljava/lang/Class;)Lcom/amazonaws/logging/Log; move-result-object v0 sput-object v0, Lcom/amazonaws/util/XpathUtils;->log:Lcom/amazonaws/logging/Log; .line 48 invoke-static {}, Lcom/amazonaws/util/XpathUtils;->getDocumentBuilderFactory()Ljavax/xml/parsers/DocumentBuilderFactory; move-result-object v0 sput-object v0, Lcom/amazonaws/util/XpathUtils;->factory:Ljavax/xml/parsers/DocumentBuilderFactory; return-void .end method .method public static asNode(Ljava/lang/String;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; .locals 2 if-nez p1, :cond_0 const/4 p0, 0x0 return-object p0 .line 330 :cond_0 invoke-static {}, Lcom/amazonaws/util/XpathUtils;->xpath()Ljavax/xml/xpath/XPath; move-result-object v0 sget-object v1, Ljavax/xml/xpath/XPathConstants;->NODE:Ljavax/xml/namespace/QName; invoke-interface {v0, p0, p1, v1}, Ljavax/xml/xpath/XPath;->evaluate(Ljava/lang/String;Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object; move-result-object p0 check-cast p0, Lorg/w3c/dom/Node; return-object p0 .end method .method public static asString(Ljava/lang/String;Lorg/w3c/dom/Node;)Ljava/lang/String; .locals 0 .line 139 invoke-static {p0, p1}, Lcom/amazonaws/util/XpathUtils;->evaluateAsString(Ljava/lang/String;Lorg/w3c/dom/Node;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static documentFrom(Ljava/io/InputStream;)Lorg/w3c/dom/Document; .locals 1 .line 78 new-instance v0, Lcom/amazonaws/util/NamespaceRemovingInputStream; invoke-direct {v0, p0}, Lcom/amazonaws/util/NamespaceRemovingInputStream;->(Ljava/io/InputStream;)V sget-object p0, Lcom/amazonaws/util/XpathUtils;->factory:Ljavax/xml/parsers/DocumentBuilderFactory; .line 79 invoke-virtual {p0}, Ljavax/xml/parsers/DocumentBuilderFactory;->newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder; move-result-object p0 invoke-virtual {p0, v0}, Ljavax/xml/parsers/DocumentBuilder;->parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document; move-result-object p0 .line 80 invoke-virtual {v0}, Ljava/io/InputStream;->close()V return-object p0 .end method .method public static documentFrom(Ljava/lang/String;)Lorg/w3c/dom/Document; .locals 2 .line 95 new-instance v0, Ljava/io/ByteArrayInputStream; sget-object v1, Lcom/amazonaws/util/StringUtils;->UTF8:Ljava/nio/charset/Charset; invoke-virtual {p0, v1}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p0 invoke-direct {v0, p0}, Ljava/io/ByteArrayInputStream;->([B)V invoke-static {v0}, Lcom/amazonaws/util/XpathUtils;->documentFrom(Ljava/io/InputStream;)Lorg/w3c/dom/Document; move-result-object p0 return-object p0 .end method .method public static evaluateAsString(Ljava/lang/String;Lorg/w3c/dom/Node;)Ljava/lang/String; .locals 2 .line 299 invoke-static {p1}, Lcom/amazonaws/util/XpathUtils;->isEmpty(Lorg/w3c/dom/Node;)Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_0 return-object v1 :cond_0 const-string v0, "." .line 302 invoke-virtual {v0, p0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_1 .line 311 invoke-static {p0, p1}, Lcom/amazonaws/util/XpathUtils;->asNode(Ljava/lang/String;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node; move-result-object v0 if-nez v0, :cond_1 return-object v1 .line 315 :cond_1 invoke-static {}, Lcom/amazonaws/util/XpathUtils;->xpath()Ljavax/xml/xpath/XPath; move-result-object v0 invoke-interface {v0, p0, p1}, Ljavax/xml/xpath/XPath;->evaluate(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String; move-result-object p0 .line 317 invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; move-result-object p0 return-object p0 .end method .method public static getDocumentBuilderFactory()Ljavax/xml/parsers/DocumentBuilderFactory; .locals 3 .line 57 :try_start_0 invoke-static {}, Ljavax/xml/parsers/DocumentBuilderFactory;->newInstance()Ljavax/xml/parsers/DocumentBuilderFactory; move-result-object v0 const-string v1, "http://apache.org/xml/features/disallow-doctype-decl" const/4 v2, 0x1 .line 58 invoke-virtual {v0, v1, v2}, Ljavax/xml/parsers/DocumentBuilderFactory;->setFeature(Ljava/lang/String;Z)V const/4 v1, 0x0 .line 59 invoke-virtual {v0, v1}, Ljavax/xml/parsers/DocumentBuilderFactory;->setXIncludeAware(Z)V .line 60 invoke-virtual {v0, v1}, Ljavax/xml/parsers/DocumentBuilderFactory;->setExpandEntityReferences(Z)V :try_end_0 .catch Ljavax/xml/parsers/ParserConfigurationException; {:try_start_0 .. :try_end_0} :catch_0 return-object v0 :catch_0 const/4 v0, 0x0 return-object v0 .end method .method public static isEmpty(Lorg/w3c/dom/Node;)Z .locals 0 if-nez p0, :cond_0 const/4 p0, 0x1 goto :goto_0 :cond_0 const/4 p0, 0x0 :goto_0 return p0 .end method .method public static xpath()Ljavax/xml/xpath/XPath; .locals 1 .line 353 invoke-static {}, Ljavax/xml/xpath/XPathFactory;->newInstance()Ljavax/xml/xpath/XPathFactory; move-result-object v0 invoke-virtual {v0}, Ljavax/xml/xpath/XPathFactory;->newXPath()Ljavax/xml/xpath/XPath; move-result-object v0 return-object v0 .end method