.class public Lcom/alibaba/fastjson/support/spring/FastJsonJsonView; .super Lorg/springframework/web/servlet/view/AbstractView; .source "FastJsonJsonView.java" # static fields .field public static final DEFAULT_CONTENT_TYPE:Ljava/lang/String; = "application/json" .field public static final UTF8:Ljava/nio/charset/Charset; # instance fields .field private charset:Ljava/nio/charset/Charset; .field private disableCaching:Z .field private extractValueFromSingleKeyModel:Z .field private renderedAttributes:Ljava/util/Set; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Set<", "Ljava/lang/String;", ">;" } .end annotation .end field .field private serializerFeatures:[Lcom/alibaba/fastjson/serializer/SerializerFeature; .field private updateContentLength:Z # direct methods .method static constructor ()V .locals 1 const-string v0, "UTF-8" .line 25 invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object v0 sput-object v0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->UTF8:Ljava/nio/charset/Charset; return-void .end method .method public constructor ()V .locals 2 .line 39 invoke-direct {p0}, Lorg/springframework/web/servlet/view/AbstractView;->()V .line 27 sget-object v0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->UTF8:Ljava/nio/charset/Charset; iput-object v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->charset:Ljava/nio/charset/Charset; const/4 v0, 0x0 .line 29 new-array v1, v0, [Lcom/alibaba/fastjson/serializer/SerializerFeature; iput-object v1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->serializerFeatures:[Lcom/alibaba/fastjson/serializer/SerializerFeature; const/4 v1, 0x1 .line 33 iput-boolean v1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->disableCaching:Z .line 35 iput-boolean v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->updateContentLength:Z .line 37 iput-boolean v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->extractValueFromSingleKeyModel:Z const-string v1, "application/json" .line 40 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->setContentType(Ljava/lang/String;)V .line 41 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->setExposePathVariables(Z)V return-void .end method # virtual methods .method protected filterModel(Ljava/util/Map;)Ljava/lang/Object; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map<", "Ljava/lang/String;", "Ljava/lang/Object;", ">;)", "Ljava/lang/Object;" } .end annotation .line 134 new-instance v0, Ljava/util/HashMap; invoke-interface {p1}, Ljava/util/Map;->size()I move-result v1 invoke-direct {v0, v1}, Ljava/util/HashMap;->(I)V .line 135 iget-object v1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->renderedAttributes:Ljava/util/Set; invoke-static {v1}, Lorg/springframework/util/CollectionUtils;->isEmpty(Ljava/util/Collection;)Z move-result v1 if-nez v1, :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->renderedAttributes:Ljava/util/Set; goto :goto_0 :cond_0 invoke-interface {p1}, Ljava/util/Map;->keySet()Ljava/util/Set; move-result-object v1 .line 136 :goto_0 invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object p1 invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p1 :cond_1 :goto_1 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_2 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Ljava/util/Map$Entry; .line 137 invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v3 instance-of v3, v3, Lorg/springframework/validation/BindingResult; if-nez v3, :cond_1 invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v3 invoke-interface {v1, v3}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z move-result v3 if-eqz v3, :cond_1 .line 138 invoke-interface {v2}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v3 invoke-interface {v2}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v2 invoke-interface {v0, v3, v2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_1 .line 141 :cond_2 iget-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->extractValueFromSingleKeyModel:Z if-eqz p1, :cond_3 .line 142 invoke-interface {v0}, Ljava/util/Map;->size()I move-result p1 const/4 v1, 0x1 if-ne p1, v1, :cond_3 .line 143 invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object p1 invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p1 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_3 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object p1 check-cast p1, Ljava/util/Map$Entry; .line 144 invoke-interface {p1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object p1 return-object p1 :cond_3 return-object v0 .end method .method public getCharset()Ljava/nio/charset/Charset; .locals 1 .line 54 iget-object v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->charset:Ljava/nio/charset/Charset; return-object v0 .end method .method public getFeatures()[Lcom/alibaba/fastjson/serializer/SerializerFeature; .locals 1 .line 62 iget-object v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->serializerFeatures:[Lcom/alibaba/fastjson/serializer/SerializerFeature; return-object v0 .end method .method public isExtractValueFromSingleKeyModel()Z .locals 1 .line 70 iget-boolean v0, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->extractValueFromSingleKeyModel:Z return v0 .end method .method protected prepareResponse(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V .locals 2 .line 95 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->setResponseContentType(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V .line 96 sget-object p1, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->UTF8:Ljava/nio/charset/Charset; invoke-virtual {p1}, Ljava/nio/charset/Charset;->name()Ljava/lang/String; move-result-object p1 invoke-interface {p2, p1}, Ljavax/servlet/http/HttpServletResponse;->setCharacterEncoding(Ljava/lang/String;)V .line 97 iget-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->disableCaching:Z if-eqz p1, :cond_0 const-string p1, "Pragma" const-string v0, "no-cache" .line 98 invoke-interface {p2, p1, v0}, Ljavax/servlet/http/HttpServletResponse;->addHeader(Ljava/lang/String;Ljava/lang/String;)V const-string p1, "Cache-Control" const-string v0, "no-cache, no-store, max-age=0" .line 99 invoke-interface {p2, p1, v0}, Ljavax/servlet/http/HttpServletResponse;->addHeader(Ljava/lang/String;Ljava/lang/String;)V const-string p1, "Expires" const-wide/16 v0, 0x1 .line 100 invoke-interface {p2, p1, v0, v1}, Ljavax/servlet/http/HttpServletResponse;->addDateHeader(Ljava/lang/String;J)V :cond_0 return-void .end method .method protected renderMergedOutputModel(Ljava/util/Map;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map<", "Ljava/lang/String;", "Ljava/lang/Object;", ">;", "Ljavax/servlet/http/HttpServletRequest;", "Ljavax/servlet/http/HttpServletResponse;", ")V" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/Exception; } .end annotation .line 80 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->filterModel(Ljava/util/Map;)Ljava/lang/Object; move-result-object p1 .line 82 iget-object p2, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->serializerFeatures:[Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-static {p1, p2}, Lcom/alibaba/fastjson/JSON;->toJSONString(Ljava/lang/Object;[Lcom/alibaba/fastjson/serializer/SerializerFeature;)Ljava/lang/String; move-result-object p1 .line 83 iget-object p2, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->charset:Ljava/nio/charset/Charset; invoke-virtual {p1, p2}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p1 .line 85 iget-boolean p2, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->updateContentLength:Z if-eqz p2, :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->createTemporaryOutputStream()Ljava/io/ByteArrayOutputStream; move-result-object p2 goto :goto_0 :cond_0 invoke-interface {p3}, Ljavax/servlet/http/HttpServletResponse;->getOutputStream()Ljavax/servlet/ServletOutputStream; move-result-object p2 .line 86 :goto_0 invoke-virtual {p2, p1}, Ljava/io/OutputStream;->write([B)V .line 88 iget-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->updateContentLength:Z if-eqz p1, :cond_1 .line 89 check-cast p2, Ljava/io/ByteArrayOutputStream; invoke-virtual {p0, p3, p2}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->writeToResponse(Ljavax/servlet/http/HttpServletResponse;Ljava/io/ByteArrayOutputStream;)V :cond_1 return-void .end method .method public setCharset(Ljava/nio/charset/Charset;)V .locals 0 .line 58 iput-object p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->charset:Ljava/nio/charset/Charset; return-void .end method .method public setDisableCaching(Z)V .locals 0 .line 110 iput-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->disableCaching:Z return-void .end method .method public setExtractValueFromSingleKeyModel(Z)V .locals 0 .line 74 iput-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->extractValueFromSingleKeyModel:Z return-void .end method .method public varargs setFeatures([Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .locals 0 .line 66 iput-object p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->serializerFeatures:[Lcom/alibaba/fastjson/serializer/SerializerFeature; return-void .end method .method public setRenderedAttributes(Ljava/util/Set;)V .locals 0 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Set<", "Ljava/lang/String;", ">;)V" } .end annotation .line 45 iput-object p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->renderedAttributes:Ljava/util/Set; return-void .end method .method public varargs setSerializerFeature([Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .locals 0 .annotation runtime Ljava/lang/Deprecated; .end annotation .line 50 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->setFeatures([Lcom/alibaba/fastjson/serializer/SerializerFeature;)V return-void .end method .method public setUpdateContentLength(Z)V .locals 0 .line 120 iput-boolean p1, p0, Lcom/alibaba/fastjson/support/spring/FastJsonJsonView;->updateContentLength:Z return-void .end method