.class public Lcom/thoughtworks/xstream/converters/extended/ISO8601SqlTimestampConverter; .super Lcom/thoughtworks/xstream/converters/extended/ISO8601DateConverter; .source "ISO8601SqlTimestampConverter.java" # static fields .field private static final PADDING:Ljava/lang/String; = "000000000" # direct methods .method public constructor ()V .locals 0 .line 1 invoke-direct {p0}, Lcom/thoughtworks/xstream/converters/extended/ISO8601DateConverter;->()V return-void .end method # virtual methods .method public canConvert(Ljava/lang/Class;)Z .locals 1 .line 1 const-class v0, Ljava/sql/Timestamp; invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result p1 return p1 .end method .method public fromString(Ljava/lang/String;)Ljava/lang/Object; .locals 5 const/16 v0, 0x2e .line 1 invoke-virtual {p1, v0}, Ljava/lang/String;->lastIndexOf(I)I move-result v0 const/4 v1, 0x0 if-lez v0, :cond_1 add-int/lit8 v2, v0, 0x1 move v3, v2 .line 2 :goto_0 invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C move-result v4 invoke-static {v4}, Ljava/lang/Character;->isDigit(C)Z move-result v4 if-eqz v4, :cond_0 add-int/lit8 v3, v3, 0x1 goto :goto_0 .line 3 :cond_0 invoke-virtual {p1, v2, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v2 invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I move-result v2 .line 4 new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V invoke-virtual {p1, v1, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v0 invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 move v1, v2 .line 5 :cond_1 invoke-super {p0, p1}, Lcom/thoughtworks/xstream/converters/extended/ISO8601DateConverter;->fromString(Ljava/lang/String;)Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/util/Date; .line 6 new-instance v0, Ljava/sql/Timestamp; invoke-virtual {p1}, Ljava/util/Date;->getTime()J move-result-wide v2 invoke-direct {v0, v2, v3}, Ljava/sql/Timestamp;->(J)V .line 7 invoke-virtual {v0, v1}, Ljava/sql/Timestamp;->setNanos(I)V return-object v0 .end method .method public toString(Ljava/lang/Object;)Ljava/lang/String; .locals 5 .line 1 check-cast p1, Ljava/sql/Timestamp; .line 2 new-instance v0, Ljava/util/Date; invoke-virtual {p1}, Ljava/sql/Timestamp;->getTime()J move-result-wide v1 const-wide/16 v3, 0x3e8 div-long/2addr v1, v3 mul-long/2addr v1, v3 invoke-direct {v0, v1, v2}, Ljava/util/Date;->(J)V invoke-super {p0, v0}, Lcom/thoughtworks/xstream/converters/extended/ISO8601DateConverter;->toString(Ljava/lang/Object;)Ljava/lang/String; move-result-object v0 .line 3 invoke-virtual {p1}, Ljava/sql/Timestamp;->getNanos()I move-result p1 invoke-static {p1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object p1 const/16 v1, 0x2e .line 4 invoke-virtual {v0, v1}, Ljava/lang/String;->lastIndexOf(I)I move-result v1 .line 5 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V add-int/lit8 v3, v1, 0x1 const/4 v4, 0x0 invoke-virtual {v0, v4, v3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v3 const-string v4, "000000000" invoke-virtual {v4, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; add-int/lit8 v1, v1, 0x4 invoke-virtual {v0, v1}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 return-object p1 .end method