org.codehaus.jackson.map.deser.impl.ValueInjector Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ehcache Show documentation
Show all versions of ehcache Show documentation
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.
package org.codehaus.jackson.map.deser.impl;
import java.io.IOException;
import org.codehaus.jackson.map.BeanProperty;
import org.codehaus.jackson.map.DeserializationContext;
import org.codehaus.jackson.map.introspect.AnnotatedMember;
import org.codehaus.jackson.map.util.Annotations;
import org.codehaus.jackson.type.JavaType;
/**
* Class that encapsulates details of value injection that occurs before
* deserialization of a POJO. Details include information needed to find
* injectable value (logical id) as well as method used for assigning
* value (setter or field)
*
* @since 1.9
*/
public class ValueInjector
extends BeanProperty.Std
{
/**
* Identifier used for looking up value to inject
*/
protected final Object _valueId;
public ValueInjector(String propertyName, JavaType type,
Annotations contextAnnotations, AnnotatedMember mutator,
Object valueId)
{
super(propertyName, type, contextAnnotations, mutator);
_valueId = valueId;
}
public Object findValue(DeserializationContext context, Object beanInstance)
{
return context.findInjectableValue(_valueId, this, beanInstance);
}
public void inject(DeserializationContext context, Object beanInstance)
throws IOException
{
_member.setValue(beanInstance, findValue(context, beanInstance));
}
}