类com.fasterxml.jackson.annotation.ObjectIdResolver源码实例Demo

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

/** @since 4.3 */
@Override
public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> config,
		Annotated annotated, Class<?> implClass) {

	return (ObjectIdResolver) this.beanFactory.createBean(implClass);
}
 
/** @since 4.3 */
@Override
public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> config,
		Annotated annotated, Class<?> implClass) {

	return (ObjectIdResolver) this.beanFactory.createBean(implClass);
}
 
源代码3 项目: lams   文件: ObjectIdInfo.java
protected ObjectIdInfo(PropertyName prop, Class<?> scope, Class<? extends ObjectIdGenerator<?>> gen,
        boolean alwaysAsId, Class<? extends ObjectIdResolver> resolver)
{
    _propertyName = prop;
    _scope = scope;
    _generator = gen;
    _alwaysAsId = alwaysAsId;
    if (resolver == null) {
        resolver = SimpleObjectIdResolver.class;
    }
    _resolver = resolver;
}
 
源代码4 项目: lams   文件: ObjectIdReader.java
@SuppressWarnings("unchecked")
protected ObjectIdReader(JavaType t, PropertyName propName, ObjectIdGenerator<?> gen,
        JsonDeserializer<?> deser, SettableBeanProperty idProp, ObjectIdResolver resolver)
{
    _idType = t;
    propertyName = propName;
    generator = gen;
    this.resolver = resolver;
    _deserializer = (JsonDeserializer<Object>) deser;
    idProperty = idProp;
}
 
源代码5 项目: lams   文件: ObjectIdReader.java
/**
 * Factory method called by {@link com.fasterxml.jackson.databind.ser.std.BeanSerializerBase}
 * with the initial information based on standard settings for the type
 * for which serializer is being built.
 */
public static ObjectIdReader construct(JavaType idType, PropertyName propName,
        ObjectIdGenerator<?> generator, JsonDeserializer<?> deser,
        SettableBeanProperty idProp, ObjectIdResolver resolver)
{
    return new ObjectIdReader(idType, propName, generator, deser, idProp, resolver);
}
 
源代码6 项目: requery   文件: ResolverInstantiator.java
@Override
public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> config, Annotated annotated, Class<?> implClass) {
    if (implClass.isAssignableFrom(EntityStoreResolver.class)) {
        return new EntityStoreResolver(store);
    }
    return null;
}
 
源代码7 项目: lams   文件: SpringHandlerInstantiator.java
/** @since 4.3 */
@Override
public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> config, Annotated annotated, Class<?> implClass) {
	return (ObjectIdResolver) this.beanFactory.createBean(implClass);
}
 
源代码8 项目: lams   文件: HandlerInstantiator.java
public ObjectIdResolver resolverIdGeneratorInstance(MapperConfig<?> config, Annotated annotated, Class<?> implClass) {
    return null;
}
 
源代码9 项目: lams   文件: ObjectIdInfo.java
public ObjectIdInfo(PropertyName name, Class<?> scope, Class<? extends ObjectIdGenerator<?>> gen,
        Class<? extends ObjectIdResolver> resolver)
{
    this(name, scope, gen, false, resolver);
}
 
源代码10 项目: lams   文件: AbstractDeserializer.java
@Override
    public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
            BeanProperty property) throws JsonMappingException
    {
        final AnnotationIntrospector intr = ctxt.getAnnotationIntrospector();
        if (property != null && intr != null) {
            final AnnotatedMember accessor = property.getMember();
            if (accessor != null) {
                ObjectIdInfo objectIdInfo = intr.findObjectIdInfo(accessor);
                if (objectIdInfo != null) { // some code duplication here as well (from BeanDeserializerFactory)
                    JavaType idType;
                    ObjectIdGenerator<?> idGen;
                    SettableBeanProperty idProp = null;
                    ObjectIdResolver resolver = ctxt.objectIdResolverInstance(accessor, objectIdInfo);

                    // 2.1: allow modifications by "id ref" annotations as well:
                    objectIdInfo = intr.findObjectReferenceInfo(accessor, objectIdInfo);
                    Class<?> implClass = objectIdInfo.getGeneratorType();

                    if (implClass == ObjectIdGenerators.PropertyGenerator.class) {
                        PropertyName propName = objectIdInfo.getPropertyName();
                        idProp = (_properties == null) ? null : _properties.get(propName.getSimpleName());
                        if (idProp == null) {
                            ctxt.reportBadDefinition(_baseType, String.format(
                                    "Invalid Object Id definition for %s: cannot find property with name '%s'",
                                    handledType().getName(), propName));
                        }
                        idType = idProp.getType();
                        idGen = new PropertyBasedObjectIdGenerator(objectIdInfo.getScope());
/*
                         ctxt.reportBadDefinition(_baseType, String.format(
/
"Invalid Object Id definition for abstract type %s: cannot use `PropertyGenerator` on polymorphic types using property annotation",
handledType().getName()));
*/
                    } else { // other types simpler
                        resolver = ctxt.objectIdResolverInstance(accessor, objectIdInfo);
                        JavaType type = ctxt.constructType(implClass);
                        idType = ctxt.getTypeFactory().findTypeParameters(type, ObjectIdGenerator.class)[0];
                        idGen = ctxt.objectIdGeneratorInstance(accessor, objectIdInfo);
                    }
                    JsonDeserializer<?> deser = ctxt.findRootValueDeserializer(idType);
                    ObjectIdReader oir = ObjectIdReader.construct(idType, objectIdInfo.getPropertyName(),
                             idGen, deser, idProp, resolver);
                    return new AbstractDeserializer(this, oir, null);
                }
            }
        }
        if (_properties == null) {
            return this;
        }
        // Need to ensure properties are dropped at this point, regardless
        return new AbstractDeserializer(this, _objectIdReader, null);
    }
 
源代码11 项目: lams   文件: ReadableObjectId.java
public void setResolver(ObjectIdResolver resolver) {
    _resolver = resolver;
}
 
源代码12 项目: requery   文件: EntityStoreResolver.java
@Override
public ObjectIdResolver newForDeserialization(Object context) {
    return this;
}
 
源代码13 项目: requery   文件: EntityStoreResolver.java
@Override
public boolean canUseFor(ObjectIdResolver resolverType) {
    return false;
}
 
源代码14 项目: immutables   文件: ByIdProperty.java
@Override
public ObjectIdResolver newForDeserialization(Object context) {
  return new ByidInstanceResolver();
}
 
源代码15 项目: lams   文件: ReadableObjectId.java
/**
 * Allow access to the resolver in case anybody wants to use it directly, for
 * examples from 
 * {@link com.fasterxml.jackson.databind.deser.DefaultDeserializationContext#tryToResolveUnresolvedObjectId}.
 *
 * @return The registered resolver
 * 
 * @since 2.7
 */
public ObjectIdResolver getResolver() {
    return _resolver;
}
 
源代码16 项目: lams   文件: DeserializationContext.java
/**
 * Method called to find and return entry corresponding to given
 * Object Id: will add an entry if necessary, and never returns null
 */
public abstract ReadableObjectId findObjectId(Object id, ObjectIdGenerator<?> generator, ObjectIdResolver resolver);
 
源代码17 项目: lams   文件: ObjectIdInfo.java
public Class<? extends ObjectIdResolver> getResolverType() { return _resolver; } 
 类方法
 同包方法