Start work on #596 to get in 2.5.0
diff --git a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
index de9dcc1..270c907 100644
--- a/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/AnnotationIntrospector.java
@@ -477,6 +477,16 @@
public PropertyName findWrapperName(Annotated ann) { return null; }
/**
+ * Method for finding suggested default value (as simple textual serialization)
+ * for the property. While core databind does not make any use of it, it is exposed
+ * for extension modules to use: an expected use is generation of schema representations
+ * and documentation.
+ *
+ * @since 2.5
+ */
+ public String findPropertyDefaultValue(Annotated ann) { return null; }
+
+ /**
* Method used to check whether specified property member (accessor
* or mutator) defines human-readable description to use for documentation.
* There are no further definitions for contents; for example, whether
@@ -515,7 +525,7 @@
* @since 2.4
*/
public String findImplicitPropertyName(AnnotatedMember member) { return null; }
-
+
/*
/**********************************************************
/* Serialization: general annotations
diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
index f5de647..13e8603 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/AnnotationIntrospectorPair.java
@@ -421,7 +421,13 @@
}
return name;
}
-
+
+ @Override
+ public String findPropertyDefaultValue(Annotated ann) {
+ String str = _primary.findPropertyDefaultValue(ann);
+ return (str == null || str.isEmpty()) ? _secondary.findPropertyDefaultValue(ann) : str;
+ }
+
@Override
public String findPropertyDescription(Annotated ann) {
String r = _primary.findPropertyDescription(ann);
@@ -433,7 +439,7 @@
Integer r = _primary.findPropertyIndex(ann);
return (r == null) ? _secondary.findPropertyIndex(ann) : r;
}
-
+
@Override
public String findImplicitPropertyName(AnnotatedMember param) {
String r = _primary.findImplicitPropertyName(param);
diff --git a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
index f1cb3be..28dd950 100644
--- a/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
+++ b/src/main/java/com/fasterxml/jackson/databind/introspect/JacksonAnnotationIntrospector.java
@@ -460,6 +460,12 @@
}
@Override
+ public String findPropertyDefaultValue(Annotated ann) {
+ JsonProperty prop = _findAnnotation(ann, JsonProperty.class);
+ return (prop == null) ? null : prop.defaultValue();
+ }
+
+ @Override
public String findPropertyDescription(Annotated ann) {
JsonPropertyDescription desc = _findAnnotation(ann, JsonPropertyDescription.class);
return (desc == null) ? null : desc.value();
diff --git a/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java b/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
index 88b6f79..fcfd7d8 100644
--- a/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
+++ b/src/test/java/com/fasterxml/jackson/databind/deser/TestFieldDeserialization.java
@@ -69,7 +69,6 @@
@JsonProperty("x")
protected int myX = 10;
- @SuppressWarnings("hiding")
public int y = 11;
}
diff --git a/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java b/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
index fad88be..bf466d3 100644
--- a/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
+++ b/src/test/java/com/fasterxml/jackson/databind/interop/TestJDKProxy.java
@@ -54,15 +54,14 @@
public static <T> T getProxy(Class<T> type, Object obj) {
class ProxyUtil implements InvocationHandler {
- @SuppressWarnings("hiding")
- Object obj;
+ Object _obj;
public ProxyUtil(Object o) {
- obj = o;
+ _obj = o;
}
@Override
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable {
Object result = null;
- result = m.invoke(obj, args);
+ result = m.invoke(_obj, args);
return result;
}
}
diff --git a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
index 6ea7997..9f1cd16 100644
--- a/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
+++ b/src/test/java/com/fasterxml/jackson/databind/introspect/TestPOJOPropertiesCollector.java
@@ -392,7 +392,6 @@
assertNotNull(beanDesc);
}
- @SuppressWarnings("hiding")
public void testJackson703() throws Exception
{
// note: need a separate mapper, need to reconfigure