
com.fasterxml.jackson.module.afterburner.deser.CustomDeserializerBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jackson-module-afterburner Show documentation
Show all versions of jackson-module-afterburner Show documentation
Experimental extension to Jackson (http://jackson.codehaus.org)
used to enhance access functionality using bytecode generation.
The newest version!
package com.fasterxml.jackson.module.afterburner.deser;
import java.util.*;
import org.codehaus.jackson.map.BeanProperty;
import org.codehaus.jackson.map.JsonDeserializer;
import org.codehaus.jackson.map.deser.BeanDeserializer;
import org.codehaus.jackson.map.deser.BeanDeserializerBuilder;
import org.codehaus.jackson.map.deser.SettableBeanProperty;
public class CustomDeserializerBuilder extends BeanDeserializerBuilder
{
public CustomDeserializerBuilder(BeanDeserializerBuilder base)
{
super(base);
}
public JsonDeserializer> build(BeanProperty forProperty)
{
JsonDeserializer> deser = (BeanDeserializer) super.build(forProperty);
// only create custom one, if existing one is standard deserializer;
if (deser.getClass() == BeanDeserializer.class) {
BeanDeserializer beanDeser = (BeanDeserializer) deser;
Iterator it = getProperties();
// also: only build custom one for non-empty beans:
if (it.hasNext()) {
// So let's find actual order of properties, necessary for optimal access
ArrayList props = new ArrayList();
do {
props.add(it.next());
} while (it.hasNext());
return new SuperSonicBeanDeserializer(beanDeser, props);
}
}
return deser;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy