All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.codehaus.jackson.jaxrs.JacksonJsonProvider.rej Maven / Gradle / Ivy

Go to download

Ehcache is an open source, standards-based cache used to boost performance, offload the database and simplify scalability. Ehcache is robust, proven and full-featured and this has made it the most widely-used Java-based cache.

There is a newer version: 2.10.9.2
Show newest version
***************
*** 15,22 ****
  
  import org.codehaus.jackson.*;
  import org.codehaus.jackson.map.DeserializationConfig;
  import org.codehaus.jackson.map.ObjectMapper;
  import org.codehaus.jackson.map.SerializationConfig;
  import org.codehaus.jackson.map.type.ClassKey;
  import org.codehaus.jackson.map.util.ClassUtil;
  import org.codehaus.jackson.map.util.JSONPObject;
--- 15,25 ----
  
  import org.codehaus.jackson.*;
  import org.codehaus.jackson.map.DeserializationConfig;
+ import org.codehaus.jackson.map.JsonMappingException;
  import org.codehaus.jackson.map.ObjectMapper;
+ import org.codehaus.jackson.map.ObjectWriter;
  import org.codehaus.jackson.map.SerializationConfig;
+ import org.codehaus.jackson.map.annotate.JsonView;
  import org.codehaus.jackson.map.type.ClassKey;
  import org.codehaus.jackson.map.util.ClassUtil;
  import org.codehaus.jackson.map.util.JSONPObject;
***************
*** 518,530 ****
                  }
              }
          }
-         // [JACKSON-245] Allow automatic JSONP wrapping
-         if (_jsonpFunctionName != null) {
-             mapper.writeValue(jg, new JSONPObject(_jsonpFunctionName, value, rootType));
-         } else if (rootType != null) {
-             mapper.typedWriter(rootType).writeValue(jg, value);
          } else {
-             mapper.writeValue(jg, value);
          }
      }
  
--- 521,564 ----
                  }
              }
          }
+         Class viewToUse = null;
+         for (Annotation annotation : annotations) {
+             if (annotation.annotationType().isAssignableFrom(JsonView.class)) {
+                 JsonView jsonView = (JsonView) annotation;
+                 Class[] views = jsonView.value();
+                 if (views.length > 1) {
+                     StringBuilder s = new StringBuilder("Multiple JsonView's can not be used on a JAX-RS method. Got ");
+                     for (int i = 0; i < views.length; i++) {
+                         if (i > 0) {
+                             s.append(", ");
+                         }
+                         s.append(views[i]);
+                     }
+                     throw new JsonMappingException(s.toString());
+                 } else {
+                     viewToUse = views[0];
+                 }
+             }
+         }
+         if (viewToUse != null) {
+             ObjectWriter viewWriter = mapper.viewWriter(viewToUse);
+             // [JACKSON-245] Allow automatic JSONP wrapping
+             if (this._jsonpFunctionName != null) {
+                 viewWriter.writeValue(jg, new JSONPObject(this._jsonpFunctionName, value, rootType));
+             } else if (rootType != null) {
+                 mapper.typedWriter(rootType).withView(viewToUse).writeValue(jg, value);
+             } else {
+                 viewWriter.writeValue(jg, value);
+             }
          } else {
+             // [JACKSON-245] Allow automatic JSONP wrapping
+             if (this._jsonpFunctionName != null) {
+                 mapper.writeValue(jg, new JSONPObject(this._jsonpFunctionName, value, rootType));
+             } else if (rootType != null) {
+                 mapper.typedWriter(rootType).writeValue(jg, value);
+             } else {
+                 mapper.writeValue(jg, value);
+             }
          }
      }
  




© 2015 - 2024 Weber Informatics LLC | Privacy Policy