类com.fasterxml.jackson.databind.ser.std.BeanSerializerBase源码实例Demo

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

源代码1 项目: albedo   文件: CustomFieldModule.java
@Override
public void setupModule(Module.SetupContext context) {
	super.setupModule(context);

	context.addBeanSerializerModifier(new BeanSerializerModifier() {

		@Override
		public JsonSerializer<?> modifySerializer(
			SerializationConfig config,
			BeanDescription beanDesc,
			JsonSerializer<?> serializer) {
			if (serializer instanceof BeanSerializerBase) {
				return new ExtraFieldSerializer(
					(BeanSerializerBase) serializer);
			}
			return serializer;

		}
	});
}
 
源代码2 项目: lams   文件: BeanPropertyWriter.java
/**
 * Method called to handle a direct self-reference through this property.
 * Method can choose to indicate an error by throwing
 * {@link JsonMappingException}; fully handle serialization (and return
 * true); or indicate that it should be serialized normally (return false).
 * <p>
 * Default implementation will throw {@link JsonMappingException} if
 * {@link SerializationFeature#FAIL_ON_SELF_REFERENCES} is enabled; or
 * return <code>false</code> if it is disabled.
 *
 * @return True if method fully handled self-referential value; false if not
 *         (caller is to handle it) or {@link JsonMappingException} if there
 *         is no way handle it
 */
protected boolean _handleSelfReference(Object bean, JsonGenerator gen,
        SerializerProvider prov, JsonSerializer<?> ser)
        throws JsonMappingException {
    if (prov.isEnabled(SerializationFeature.FAIL_ON_SELF_REFERENCES)
            && !ser.usesObjectId()) {
        // 05-Feb-2013, tatu: Usually a problem, but NOT if we are handling
        // object id; this may be the case for BeanSerializers at least.
        // 13-Feb-2014, tatu: another possible ok case: custom serializer
        // (something
        // OTHER than {@link BeanSerializerBase}
        if (ser instanceof BeanSerializerBase) {
            prov.reportBadDefinition(getType(), "Direct self-reference leading to cycle");
        }
    }
    return false;
}
 
源代码3 项目: lams   文件: BeanSerializer.java
/**
 * Implementation has to check whether as-array serialization
 * is possible reliably; if (and only if) so, will construct
 * a {@link BeanAsArraySerializer}, otherwise will return this
 * serializer as is.
 */
@Override
protected BeanSerializerBase asArraySerializer()
{
    /* Cannot:
     * 
     * - have Object Id (may be allowed in future)
     * - have "any getter"
     * - have per-property filters
     */
    if ((_objectIdWriter == null)
            && (_anyGetterWriter == null)
            && (_propertyFilterId == null)
            ) {
        return new BeanAsArraySerializer(this);
    }
    // already is one, so:
    return this;
}
 
public static BeanSerializerModifier createJsonSerializerModifier() { // final
	// KeyFormatter
	// keyFormatter,
	// final
	// boolean
	// compactMode)
	// {
	return new BeanSerializerModifier() {
		@Override
		public JsonSerializer<?> modifySerializer(SerializationConfig config,
				BeanDescription beanDesc, JsonSerializer<?> serializer) {
			/*
			 * if (beanDesc.getBeanClass().isAssignableFrom(Applications.class)) {
			 * return new ApplicationsJsonBeanSerializer((BeanSerializerBase)
			 * serializer, keyFormatter); }
			 */
			if (beanDesc.getBeanClass().isAssignableFrom(InstanceInfo.class)) {
				return new InstanceInfoJsonBeanSerializer(
						(BeanSerializerBase) serializer, false);
			}
			return serializer;
		}
	};
}
 
源代码5 项目: cola-cloud   文件: JacksonDictJsonModifier.java
@Override
public JsonSerializer<?> modifySerializer(SerializationConfig config,
                                          BeanDescription beanDesc, JsonSerializer<?> serializer) {
    JsonDict jsonDict = beanDesc.getBeanClass().getAnnotation(JsonDict.class);
    if(jsonDict != null){
        serializer = new JsonDictSerializer((BeanSerializerBase) serializer, dictClient,jsonDict);
    }
    return serializer;
}
 
源代码6 项目: albedo   文件: JacksonTest.java
@Test
public void testAddExtraField() throws Exception {
	ObjectMapper mapper = new ObjectMapper();

	mapper.registerModule(new SimpleModule() {

		public void setupModule(SetupContext context) {
			super.setupModule(context);

			context.addBeanSerializerModifier(new BeanSerializerModifier() {

				public JsonSerializer<?> modifySerializer(
					SerializationConfig config,
					BeanDescription beanDesc,
					JsonSerializer<?> serializer) {
					if (serializer instanceof BeanSerializerBase) {
						return new ExtraFieldSerializer(
							(BeanSerializerBase) serializer);
					}
					return serializer;

				}
			});
		}
	});

	mapper.writeValue(System.out, Lists.newArrayList(new MyClass1(), new MyClass2()));
	//prints {"classField":"classFieldValue","extraField":"extraFieldValue"}
}
 
源代码7 项目: caravan   文件: AbstractBeanSerializer.java
@Override
protected BeanSerializerBase asArraySerializer() {
  if ((_objectIdWriter == null)
      && (_anyGetterWriter == null)
      && (_propertyFilterId == null)
      ) {
    return new BeanAsArraySerializer(this);
  }
  // already is one, so:
  return this;
}
 
@Override
public JsonSerializer<?> modifySerializer(SerializationConfig config, BeanDescription beanDesc, JsonSerializer<?> serializer) {
    if(AnnotationsUtils.isAnnotationPresent(beanDesc.getBeanClass(), JsonldResource.class) && serializer instanceof BeanSerializerBase){
        return new JsonldResourceSerializer((BeanSerializerBase) serializer);
    }
    return serializer;
}
 
public JsonSerializer<?> modifySerializer(
    SerializationConfig config,
    BeanDescription beanDesc,
    JsonSerializer<?> serializer
) {
  // Only use the serializer for any subclasses of RType
  if (RType.class.isAssignableFrom(beanDesc.getBeanClass()) && serializer instanceof BeanSerializerBase) {
    return new RBeanContextData((BeanSerializerBase) serializer);
  }
  return serializer;
}
 
@Deprecated // reduce visibility in future release
public static BeanSerializerModifier createJsonSerializerModifier() {
	return new BeanSerializerModifier() {
		@Override
		public JsonSerializer<?> modifySerializer(SerializationConfig config,
				BeanDescription beanDesc, JsonSerializer<?> serializer) {
			if (beanDesc.getBeanClass().isAssignableFrom(InstanceInfo.class)) {
				return new InstanceInfoJsonBeanSerializer(
						(BeanSerializerBase) serializer, false);
			}
			return serializer;
		}
	};
}
 
源代码11 项目: cola-cloud   文件: JsonDictSerializer.java
public JsonDictSerializer(BeanSerializerBase src, DictClient dictClient, JsonDict jsonDict) {
    super(src);
    this.jsonDict = jsonDict;
    this.dictClient = dictClient;
}
 
源代码12 项目: albedo   文件: ExtraFieldSerializer.java
public ExtraFieldSerializer(BeanSerializerBase source) {
	super(source);
}
 
源代码13 项目: albedo   文件: ExtraFieldSerializer.java
@Override
public BeanSerializerBase withObjectIdWriter(
	ObjectIdWriter objectIdWriter) {
	return new ExtraFieldSerializer(this, objectIdWriter);
}
 
源代码14 项目: albedo   文件: ExtraFieldSerializer.java
@Override
protected BeanSerializerBase withIgnorals(Set<String> toIgnore) {
	return new ExtraFieldSerializer(this, toIgnore);
}
 
源代码15 项目: albedo   文件: ExtraFieldSerializer.java
@Override
protected BeanSerializerBase asArraySerializer() {
	return (this._objectIdWriter == null && this._anyGetterWriter == null && this._propertyFilterId == null ? new BeanAsArraySerializer(this) : this);
}
 
源代码16 项目: albedo   文件: ExtraFieldSerializer.java
@Override
public BeanSerializerBase withFilterId(Object filterId) {
	return new ExtraFieldSerializer(this, this._objectIdWriter, filterId);
}
 
源代码17 项目: lams   文件: BeanAsArraySerializer.java
public BeanAsArraySerializer(BeanSerializerBase src) {    
    super(src, (ObjectIdWriter) null);
    _defaultSerializer = src;
}
 
源代码18 项目: lams   文件: BeanAsArraySerializer.java
protected BeanAsArraySerializer(BeanSerializerBase src, Set<String> toIgnore) {
    super(src, toIgnore);
    _defaultSerializer = src;
}
 
源代码19 项目: lams   文件: BeanAsArraySerializer.java
protected BeanAsArraySerializer(BeanSerializerBase src,
        ObjectIdWriter oiw, Object filterId) {
    super(src, oiw, filterId);
    _defaultSerializer = src;
}
 
源代码20 项目: lams   文件: BeanAsArraySerializer.java
@Override
public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter) {
    // can't handle Object Ids, for now, so:
    return _defaultSerializer.withObjectIdWriter(objectIdWriter);
}
 
源代码21 项目: lams   文件: BeanAsArraySerializer.java
@Override
public BeanSerializerBase withFilterId(Object filterId) {
    return new BeanAsArraySerializer(this, _objectIdWriter, filterId);
}
 
源代码22 项目: lams   文件: BeanAsArraySerializer.java
@Override
protected BeanSerializerBase asArraySerializer() {
    // already is one, so:
    return this;
}
 
源代码23 项目: lams   文件: UnwrappingBeanSerializer.java
/**
 * Constructor used for creating unwrapping instance of a
 * standard <code>BeanSerializer</code>
 */
public UnwrappingBeanSerializer(BeanSerializerBase src, NameTransformer transformer) {
    super(src, transformer);
    _nameTransformer = transformer;
}
 
源代码24 项目: lams   文件: UnwrappingBeanSerializer.java
@Override
public BeanSerializerBase withObjectIdWriter(ObjectIdWriter objectIdWriter) {
    return new UnwrappingBeanSerializer(this, objectIdWriter);
}
 
源代码25 项目: lams   文件: UnwrappingBeanSerializer.java
@Override
public BeanSerializerBase withFilterId(Object filterId) {
    return new UnwrappingBeanSerializer(this, _objectIdWriter, filterId);
}
 
源代码26 项目: lams   文件: UnwrappingBeanSerializer.java
@Override
protected BeanSerializerBase withIgnorals(Set<String> toIgnore) {
    return new UnwrappingBeanSerializer(this, toIgnore);
}
 
源代码27 项目: lams   文件: UnwrappingBeanSerializer.java
/**
 * JSON Array output cannot be done if unwrapping operation is
 * requested; so implementation will simply return 'this'.
 */
@Override
protected BeanSerializerBase asArraySerializer() {
    return this;
}
 
源代码28 项目: lams   文件: BeanSerializer.java
protected BeanSerializer(BeanSerializerBase src,
        ObjectIdWriter objectIdWriter) {
    super(src, objectIdWriter);
}
 
源代码29 项目: lams   文件: BeanSerializer.java
protected BeanSerializer(BeanSerializerBase src,
        ObjectIdWriter objectIdWriter, Object filterId) {
    super(src, objectIdWriter, filterId);
}
 
源代码30 项目: lams   文件: BeanSerializer.java
protected BeanSerializer(BeanSerializerBase src, Set<String> toIgnore) {
    super(src, toIgnore);
}
 
 同包方法