.class public Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory; .super Ljava/lang/Object; .source "OptionalHandlerFactory.java" # interfaces .implements Ljava/io/Serializable; # static fields .field private static final CLASS_DOM_DOCUMENT:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field private static final CLASS_DOM_NODE:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field private static final CLASS_JAVA7_PATH:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field private static final DESERIALIZERS_FOR_JAVAX_XML:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.CoreXMLDeserializers" .field private static final DESERIALIZER_FOR_DOM_DOCUMENT:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.DOMDeserializer$DocumentDeserializer" .field private static final DESERIALIZER_FOR_DOM_NODE:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.DOMDeserializer$NodeDeserializer" .field private static final DESERIALIZER_FOR_PATH:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.PathDeserializer" .field private static final PACKAGE_PREFIX_JAVAX_XML:Ljava/lang/String; = "javax.xml." .field private static final SERIALIZERS_FOR_JAVAX_XML:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.CoreXMLSerializers" .field private static final SERIALIZER_FOR_DOM_NODE:Ljava/lang/String; = "com.fasterxml.jackson.databind.ext.DOMSerializer" .field public static final instance:Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory; .field private static final serialVersionUID:J = 0x1L # direct methods .method public static constructor ()V .locals 4 const/4 v0, 0x0 .line 1 :try_start_0 const-class v1, Lorg/w3c/dom/Node; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .line 2 :try_start_1 const-class v2, Lorg/w3c/dom/Document; :try_end_1 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_1} :catch_1 goto :goto_0 :catch_0 move-object v1, v0 .line 3 :catch_1 sget-object v2, Ljava/lang/System;->err:Ljava/io/PrintStream; const-string v3, "WARNING: could not load DOM Node and/or Document classes" invoke-virtual {v2, v3}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V move-object v2, v0 .line 4 :goto_0 sput-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_DOM_NODE:Ljava/lang/Class; .line 5 sput-object v2, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_DOM_DOCUMENT:Ljava/lang/Class; :try_start_2 const-string v1, "java.nio.file.Path" .line 6 invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v0 :try_end_2 .catch Ljava/lang/Exception; {:try_start_2 .. :try_end_2} :catch_2 goto :goto_1 .line 7 :catch_2 sget-object v1, Ljava/lang/System;->err:Ljava/io/PrintStream; const-string v2, "WARNING: could not load Java7 Path class" invoke-virtual {v1, v2}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V .line 8 :goto_1 sput-object v0, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_JAVA7_PATH:Ljava/lang/Class; .line 9 new-instance v0, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory; invoke-direct {v0}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->()V sput-object v0, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instance:Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory; return-void .end method .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private hasSuperClassStartingWith(Ljava/lang/Class;Ljava/lang/String;)Z .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Class<", "*>;", "Ljava/lang/String;", ")Z" } .end annotation .line 1 :cond_0 invoke-virtual {p1}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class; move-result-object p1 const/4 v0, 0x0 if-eqz p1, :cond_2 .line 2 const-class v1, Ljava/lang/Object; if-ne p1, v1, :cond_1 return v0 .line 3 :cond_1 invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v0 invoke-virtual {v0, p2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 const/4 p1, 0x1 return p1 :cond_2 return v0 .end method .method private instantiate(Ljava/lang/String;)Ljava/lang/Object; .locals 0 .line 1 :try_start_0 invoke-static {p1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object p1 invoke-virtual {p1}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object p1 :try_end_0 .catch Ljava/lang/LinkageError; {:try_start_0 .. :try_end_0} :catch_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 return-object p1 :catch_0 const/4 p1, 0x0 return-object p1 .end method # virtual methods .method public findDeserializer(Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/DeserializationConfig;Lcom/fasterxml/jackson/databind/BeanDescription;)Lcom/fasterxml/jackson/databind/JsonDeserializer; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/fasterxml/jackson/databind/JavaType;", "Lcom/fasterxml/jackson/databind/DeserializationConfig;", "Lcom/fasterxml/jackson/databind/BeanDescription;", ")", "Lcom/fasterxml/jackson/databind/JsonDeserializer<", "*>;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Lcom/fasterxml/jackson/databind/JsonMappingException; } .end annotation .line 1 invoke-virtual {p1}, Lcom/fasterxml/jackson/databind/JavaType;->getRawClass()Ljava/lang/Class; move-result-object v0 .line 2 sget-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_JAVA7_PATH:Ljava/lang/Class; if-eqz v1, :cond_0 invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_0 const-string p1, "com.fasterxml.jackson.databind.ext.PathDeserializer" .line 3 invoke-direct {p0, p1}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/fasterxml/jackson/databind/JsonDeserializer; return-object p1 .line 4 :cond_0 sget-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_DOM_NODE:Ljava/lang/Class; if-eqz v1, :cond_1 invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_1 const-string p1, "com.fasterxml.jackson.databind.ext.DOMDeserializer$NodeDeserializer" .line 5 invoke-direct {p0, p1}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/fasterxml/jackson/databind/JsonDeserializer; return-object p1 .line 6 :cond_1 sget-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_DOM_DOCUMENT:Ljava/lang/Class; if-eqz v1, :cond_2 invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_2 const-string p1, "com.fasterxml.jackson.databind.ext.DOMDeserializer$DocumentDeserializer" .line 7 invoke-direct {p0, p1}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/fasterxml/jackson/databind/JsonDeserializer; return-object p1 .line 8 :cond_2 invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v1 const-string v2, "javax.xml." .line 9 invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v1 const/4 v3, 0x0 if-nez v1, :cond_4 invoke-direct {p0, v0, v2}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->hasSuperClassStartingWith(Ljava/lang/Class;Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_3 goto :goto_0 :cond_3 return-object v3 :cond_4 :goto_0 const-string v0, "com.fasterxml.jackson.databind.ext.CoreXMLDeserializers" .line 10 invoke-direct {p0, v0}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 if-nez v0, :cond_5 return-object v3 .line 11 :cond_5 check-cast v0, Lcom/fasterxml/jackson/databind/deser/Deserializers; invoke-interface {v0, p1, p2, p3}, Lcom/fasterxml/jackson/databind/deser/Deserializers;->findBeanDeserializer(Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/DeserializationConfig;Lcom/fasterxml/jackson/databind/BeanDescription;)Lcom/fasterxml/jackson/databind/JsonDeserializer; move-result-object p1 return-object p1 .end method .method public findSerializer(Lcom/fasterxml/jackson/databind/SerializationConfig;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/BeanDescription;)Lcom/fasterxml/jackson/databind/JsonSerializer; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/fasterxml/jackson/databind/SerializationConfig;", "Lcom/fasterxml/jackson/databind/JavaType;", "Lcom/fasterxml/jackson/databind/BeanDescription;", ")", "Lcom/fasterxml/jackson/databind/JsonSerializer<", "*>;" } .end annotation .line 1 invoke-virtual {p2}, Lcom/fasterxml/jackson/databind/JavaType;->getRawClass()Ljava/lang/Class; move-result-object v0 .line 2 sget-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_JAVA7_PATH:Ljava/lang/Class; if-eqz v1, :cond_0 invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_0 .line 3 sget-object p1, Lcom/fasterxml/jackson/databind/ser/std/ToStringSerializer;->instance:Lcom/fasterxml/jackson/databind/ser/std/ToStringSerializer; return-object p1 .line 4 :cond_0 sget-object v1, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->CLASS_DOM_NODE:Ljava/lang/Class; if-eqz v1, :cond_1 invoke-virtual {v1, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v1 if-eqz v1, :cond_1 const-string p1, "com.fasterxml.jackson.databind.ext.DOMSerializer" .line 5 invoke-direct {p0, p1}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/fasterxml/jackson/databind/JsonSerializer; return-object p1 .line 6 :cond_1 invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v1 const-string v2, "javax.xml." .line 7 invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v1 const/4 v3, 0x0 if-nez v1, :cond_3 invoke-direct {p0, v0, v2}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->hasSuperClassStartingWith(Ljava/lang/Class;Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_2 goto :goto_0 :cond_2 return-object v3 :cond_3 :goto_0 const-string v0, "com.fasterxml.jackson.databind.ext.CoreXMLSerializers" .line 8 invoke-direct {p0, v0}, Lcom/fasterxml/jackson/databind/ext/OptionalHandlerFactory;->instantiate(Ljava/lang/String;)Ljava/lang/Object; move-result-object v0 if-nez v0, :cond_4 return-object v3 .line 9 :cond_4 check-cast v0, Lcom/fasterxml/jackson/databind/ser/Serializers; invoke-interface {v0, p1, p2, p3}, Lcom/fasterxml/jackson/databind/ser/Serializers;->findSerializer(Lcom/fasterxml/jackson/databind/SerializationConfig;Lcom/fasterxml/jackson/databind/JavaType;Lcom/fasterxml/jackson/databind/BeanDescription;)Lcom/fasterxml/jackson/databind/JsonSerializer; move-result-object p1 return-object p1 .end method