类com.fasterxml.jackson.databind.deser.BeanDeserializerBase源码实例Demo

下面列出了怎么用com.fasterxml.jackson.databind.deser.BeanDeserializerBase的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config,
        BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
    if (deserializer instanceof BeanDeserializerBase) {
        return new DataBinderDeserializer(
                (BeanDeserializerBase) deserializer);
    }
    // When there is no custom-deserializer implementation returns the
    // default jackson deserializer
    return deserializer;
}
 
源代码2 项目: lams   文件: StdDeserializer.java
protected final NullValueProvider _findNullProvider(DeserializationContext ctxt,
        BeanProperty prop, Nulls nulls, JsonDeserializer<?> valueDeser)
    throws JsonMappingException
{
    if (nulls == Nulls.FAIL) {
        if (prop == null) {
            return NullsFailProvider.constructForRootValue(ctxt.constructType(valueDeser.handledType()));
        }
        return NullsFailProvider.constructForProperty(prop);
    }
    if (nulls == Nulls.AS_EMPTY) {
        // cannot deal with empty values if there is no value deserializer that
        // can indicate what "empty value" is:
        if (valueDeser == null) {
            return null;
        }

        // Let's first do some sanity checking...
        // NOTE: although we could use `ValueInstantiator.Gettable` in general,
        // let's not since that would prevent being able to use custom impls:
        if (valueDeser instanceof BeanDeserializerBase) {
            ValueInstantiator vi = ((BeanDeserializerBase) valueDeser).getValueInstantiator();
            if (!vi.canCreateUsingDefault()) {
                final JavaType type = prop.getType();
                ctxt.reportBadDefinition(type,
                        String.format("Cannot create empty instance of %s, no default Creator", type));
            }
        }
        // Second: can with pre-fetch value?
        {
            AccessPattern access = valueDeser.getEmptyAccessPattern();
            if (access == AccessPattern.ALWAYS_NULL) {
                return NullsConstantProvider.nuller();
            }
            if (access == AccessPattern.CONSTANT) {
                return NullsConstantProvider.forValue(valueDeser.getEmptyValue(ctxt));
            }
        }
        return new NullsAsEmptyProvider(valueDeser);
    }
    if (nulls == Nulls.SKIP) {
        return NullsConstantProvider.skipper();
    }
    return null;
}
 
源代码3 项目: requery   文件: EntityBeanDeserializer.java
EntityBeanDeserializer(BeanDeserializerBase source, ObjectIdReader reader) {
    super(source, reader);
}
 
源代码4 项目: gvnix   文件: DataBinderDeserializer.java
public DataBinderDeserializer(BeanDeserializerBase source) {
    super(source);
}
 
源代码5 项目: gvnix   文件: DataBinderDeserializer.java
public DataBinderDeserializer(BeanDeserializerBase source,
        ObjectIdReader objectIdReader) {
    super(source, objectIdReader);
}
 
源代码6 项目: gvnix   文件: DataBinderDeserializer.java
public DataBinderDeserializer(BeanDeserializerBase source,
        HashSet<String> ignorableProps) {
    super(source, ignorableProps);
}
 
源代码7 项目: gvnix   文件: DataBinderDeserializer.java
/**
 * {@inheritDoc}
 * 
 * Uses {@link DataBinderDeserializer}
 */
@Override
public BeanDeserializerBase withIgnorableProperties(
        HashSet<String> ignorableProps) {
    return new DataBinderDeserializer(this, ignorableProps);
}
 
源代码8 项目: gvnix   文件: DataBinderDeserializer.java
/**
 * {@inheritDoc}
 * 
 * Not used
 */
@Override
protected BeanDeserializerBase asArrayDeserializer() {
    // Not used
    return null;
}
 
源代码9 项目: gvnix   文件: DataBinderDeserializer.java
/**
 * {@inheritDoc}
 * 
 * Uses {@link DataBinderDeserializer}
 */
@Override
public BeanDeserializerBase withObjectIdReader(ObjectIdReader objectIdReader) {
    return new DataBinderDeserializer(this, objectIdReader);
}
 
 同包方法