aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java
diff options
context:
space:
mode:
authorTatu Saloranta <tsaloranta@gmail.com>2012-03-19 19:11:21 -0700
committerTatu Saloranta <tsaloranta@gmail.com>2012-03-19 19:11:21 -0700
commit337feca4a10581197656d497b94cde602c1b16a7 (patch)
tree3d2fe1542ce6f2253d255ef4c2aa2bfabe2cea2e /src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java
parent16d43e3cca1c8bd4c662863f10b8f0eba8379d1f (diff)
downloadjackson-databind-337feca4a10581197656d497b94cde602c1b16a7.tar.gz
Fixed [JACKSON-368]; one of infamous 'failing' cases... (yay!)
Diffstat (limited to 'src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java')
-rw-r--r--src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java b/src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java
index 17ef72762..b663b8069 100644
--- a/src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java
+++ b/src/main/java/com/fasterxml/jackson/databind/deser/AbstractDeserializer.java
@@ -1,6 +1,7 @@
package com.fasterxml.jackson.databind.deser;
import java.io.IOException;
+import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.*;
@@ -22,6 +23,8 @@ public class AbstractDeserializer
protected final JavaType _baseType;
protected final ObjectIdReader _objectIdReader;
+
+ protected final Map<String, SettableBeanProperty> _backRefProperties;
// support for "native" types, which require special care:
@@ -30,11 +33,13 @@ public class AbstractDeserializer
protected final boolean _acceptInt;
protected final boolean _acceptDouble;
- public AbstractDeserializer(JavaType bt, ObjectIdReader oir)
+ public AbstractDeserializer(BeanDeserializerBuilder builder,
+ BeanDescription beanDesc, Map<String, SettableBeanProperty> backRefProps)
{
- _baseType = bt;
- _objectIdReader = oir;
- Class<?> cls = bt.getRawClass();
+ _baseType = beanDesc.getType();
+ _objectIdReader = builder.getObjectIdReader();
+ _backRefProperties = backRefProps;
+ Class<?> cls = _baseType.getRawClass();
_acceptString = cls.isAssignableFrom(String.class);
_acceptBoolean = (cls == Boolean.TYPE) || cls.isAssignableFrom(Boolean.class);
_acceptInt = (cls == Integer.TYPE) || cls.isAssignableFrom(Integer.class);
@@ -60,6 +65,15 @@ public class AbstractDeserializer
return _objectIdReader;
}
+ /**
+ * Method called by <code>BeanDeserializer</code> to resolve back reference
+ * part of managed references.
+ */
+ public SettableBeanProperty findBackReference(String logicalName)
+ {
+ return (_backRefProperties == null) ? null : _backRefProperties.get(logicalName);
+ }
+
/*
/**********************************************************
/* Deserializer implementation