Java 类com.fasterxml.jackson.databind.ser.ContextualSerializer 实例源码
项目:QuizUpWinner
文件:JsonValueSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = this._valueSerializer;
if (localJsonSerializer1 == null)
{
if ((paramSerializerProvider.isEnabled(MapperFeature.USE_STATIC_TYPING)) || (Modifier.isFinal(this._accessorMethod.getReturnType().getModifiers())))
{
JavaType localJavaType = paramSerializerProvider.constructType(this._accessorMethod.getGenericReturnType());
JsonSerializer localJsonSerializer2 = paramSerializerProvider.findTypedValueSerializer(localJavaType, false, this._property);
return withResolved(paramBeanProperty, localJsonSerializer2, isNaturalTypeWithStdHandling(localJavaType.getRawClass(), localJsonSerializer2));
}
}
else if ((localJsonSerializer1 instanceof ContextualSerializer))
return withResolved(paramBeanProperty, ((ContextualSerializer)localJsonSerializer1).createContextual(paramSerializerProvider, paramBeanProperty), this._forceTypeInformation);
return this;
}
项目:QuizUpWinner
文件:StdDelegatingSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
if (this._delegateSerializer != null)
{
if ((this._delegateSerializer instanceof ContextualSerializer))
{
JsonSerializer localJsonSerializer = ((ContextualSerializer)this._delegateSerializer).createContextual(paramSerializerProvider, paramBeanProperty);
if (localJsonSerializer == this._delegateSerializer)
return this;
return withDelegate(this._converter, this._delegateType, localJsonSerializer);
}
return this;
}
JavaType localJavaType1 = this._delegateType;
JavaType localJavaType2 = localJavaType1;
if (localJavaType1 == null)
localJavaType2 = this._converter.getOutputType(paramSerializerProvider.getTypeFactory());
return withDelegate(this._converter, localJavaType2, paramSerializerProvider.findValueSerializer(localJavaType2, paramBeanProperty));
}
项目:endpoints-java
文件:ObjectMapperUtil.java
@Override
public JsonSerializer<?> createContextual(SerializerProvider provider, BeanProperty property)
throws JsonMappingException {
if (delegate instanceof ContextualSerializer) {
return new DeepEmptyCheckingSerializer<>(
((ContextualSerializer) delegate).createContextual(provider, property));
}
return this;
}
项目:emodb
文件:LazyJsonModule.java
/**
* Override to preserve the delegating behavior when a contextualized serializer is created.
*/
@Override
public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property)
throws JsonMappingException {
if (_delegateSerializer instanceof ContextualSerializer) {
JsonSerializer<?> contextualDelegate = ((ContextualSerializer) _delegateSerializer).createContextual(prov, property);
// Check for different instance
if (contextualDelegate != _delegateSerializer) {
return new DelegatingMapSerializer(contextualDelegate);
}
}
return this;
}
项目:QuizUpWinner
文件:ObjectArraySerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
TypeSerializer localTypeSerializer1 = this._valueTypeSerializer;
TypeSerializer localTypeSerializer2 = localTypeSerializer1;
if (localTypeSerializer1 != null)
localTypeSerializer2 = localTypeSerializer2.forProperty(paramBeanProperty);
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._elementSerializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
{
if ((this._elementType != null) && ((this._staticTyping) || (hasContentTypeAnnotation(paramSerializerProvider, paramBeanProperty))))
localJsonSerializer3 = paramSerializerProvider.findValueSerializer(this._elementType, paramBeanProperty);
}
else if ((localJsonSerializer3 instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
return withResolved(paramBeanProperty, localTypeSerializer2, localJsonSerializer3);
}
项目:QuizUpWinner
文件:AsArraySerializerBase.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
TypeSerializer localTypeSerializer1 = this._valueTypeSerializer;
TypeSerializer localTypeSerializer2 = localTypeSerializer1;
if (localTypeSerializer1 != null)
localTypeSerializer2 = localTypeSerializer2.forProperty(paramBeanProperty);
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._elementSerializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
{
if ((localJsonSerializer3 == null) && (this._elementType != null) && ((this._staticTyping) || (hasContentTypeAnnotation(paramSerializerProvider, paramBeanProperty))))
localJsonSerializer3 = paramSerializerProvider.findValueSerializer(this._elementType, paramBeanProperty);
}
else if ((localJsonSerializer3 instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
if ((localJsonSerializer3 != this._elementSerializer) || (paramBeanProperty != this._property) || (this._valueTypeSerializer != localTypeSerializer2))
return withResolved(paramBeanProperty, localTypeSerializer2, localJsonSerializer3);
return this;
}
项目:QuizUpWinner
文件:EnumMapSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._valueSerializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
{
if (this._staticTyping)
return withValueSerializer(paramBeanProperty, paramSerializerProvider.findValueSerializer(this._valueType, paramBeanProperty));
}
else if ((this._valueSerializer instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
if (localJsonSerializer3 != this._valueSerializer)
return withValueSerializer(paramBeanProperty, localJsonSerializer3);
return this;
}
项目:QuizUpWinner
文件:IndexedStringListSerializer.java
public final JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._serializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
localJsonSerializer3 = paramSerializerProvider.findValueSerializer(String.class, paramBeanProperty);
else if ((localJsonSerializer3 instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
if (isDefaultSerializer(localJsonSerializer3))
localJsonSerializer3 = null;
if (localJsonSerializer3 == this._serializer)
return this;
return new IndexedStringListSerializer(localJsonSerializer3);
}
项目:QuizUpWinner
文件:StringCollectionSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._serializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
localJsonSerializer3 = paramSerializerProvider.findValueSerializer(String.class, paramBeanProperty);
else if ((localJsonSerializer3 instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
if (isDefaultSerializer(localJsonSerializer3))
localJsonSerializer3 = null;
if (localJsonSerializer3 == this._serializer)
return this;
return new StringCollectionSerializer(localJsonSerializer3);
}
项目:QuizUpWinner
文件:StringArraySerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
if (localAnnotatedMember != null)
{
Object localObject = paramSerializerProvider.getAnnotationIntrospector().findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._elementSerializer;
JsonSerializer localJsonSerializer2 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer3 = localJsonSerializer2;
if (localJsonSerializer2 == null)
localJsonSerializer3 = paramSerializerProvider.findValueSerializer(String.class, paramBeanProperty);
else if ((localJsonSerializer3 instanceof ContextualSerializer))
localJsonSerializer3 = ((ContextualSerializer)localJsonSerializer3).createContextual(paramSerializerProvider, paramBeanProperty);
if (isDefaultSerializer(localJsonSerializer3))
localJsonSerializer3 = null;
if (localJsonSerializer3 == this._elementSerializer)
return this;
return new StringArraySerializer(this, paramBeanProperty, localJsonSerializer3);
}
项目:joyplus-tv
文件:JsonValueSerializer.java
/**
* We can try to find the actual serializer for value, if we can
* statically figure out what the result type must be.
*/
// @Override
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
JsonSerializer<?> ser = _valueSerializer;
if (ser == null) {
/* Can only assign serializer statically if the declared type is final:
* if not, we don't really know the actual type until we get the instance.
*/
// 10-Mar-2010, tatu: Except if static typing is to be used
if (provider.isEnabled(MapperFeature.USE_STATIC_TYPING)
|| Modifier.isFinal(_accessorMethod.getReturnType().getModifiers())) {
JavaType t = provider.constructType(_accessorMethod.getGenericReturnType());
// false -> no need to cache
/* 10-Mar-2010, tatu: Ideally we would actually separate out type
* serializer from value serializer; but, alas, there's no access
* to serializer factory at this point...
*/
/* 09-Dec-2010, tatu: Turns out we must add special handling for
* cases where "native" (aka "natural") type is being serialized,
* using standard serializer
*/
ser = provider.findTypedValueSerializer(t, false, _property);
boolean forceTypeInformation = isNaturalTypeWithStdHandling(t.getRawClass(), ser);
return withResolved(property, ser, forceTypeInformation);
}
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
return withResolved(property, ser, _forceTypeInformation);
}
return this;
}
项目:joyplus-tv
文件:ObjectArraySerializer.java
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
TypeSerializer vts = _valueTypeSerializer;
if (vts != null) {
vts = vts.forProperty(property);
}
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _elementSerializer;
}
if (ser == null) {
// 30-Sep-2012, tatu: One more thing -- if explicit content type is annotated,
// we can consider it a static case as well.
if (_elementType != null) {
if (_staticTyping || hasContentTypeAnnotation(provider, property)) {
ser = provider.findValueSerializer(_elementType, property);
}
}
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) _elementSerializer).createContextual(provider, property);
}
return withResolved(property, vts, ser);
}
项目:joyplus-tv
文件:EnumMapSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _valueSerializer;
}
if (ser == null) {
if (_staticTyping) {
return withValueSerializer(property, provider.findValueSerializer(_valueType, property));
}
} else if (_valueSerializer instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
}
if (ser != _valueSerializer) {
return withValueSerializer(property, ser);
}
return this;
}
项目:joyplus-tv
文件:IndexedStringListSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _serializer;
}
if (ser == null) {
ser = provider.findValueSerializer(String.class, property);
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
}
// Optimization: default serializer just writes String, so we can avoid a call:
if (isDefaultSerializer(ser)) {
ser = null;
}
// note: will never have TypeSerializer, because Strings are "natural" type
if (ser == _serializer) {
return this;
}
return new IndexedStringListSerializer(ser);
}
项目:joyplus-tv
文件:StringCollectionSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _serializer;
}
if (ser == null) {
ser = provider.findValueSerializer(String.class, property);
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
}
// Optimization: default serializer just writes String, so we can avoid a call:
if (isDefaultSerializer(ser)) {
ser = null;
}
// note: will never have TypeSerializer, because Strings are "natural" type
if (ser == _serializer) {
return this;
}
return new StringCollectionSerializer(ser);
}
项目:joyplus-tv
文件:StringArraySerializer.java
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _elementSerializer;
}
if (ser == null) {
ser = provider.findValueSerializer(String.class, property);
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
}
// Optimization: default serializer just writes String, so we can avoid a call:
if (isDefaultSerializer(ser)) {
ser = null;
}
// note: will never have TypeSerializer, because Strings are "natural" type
if (ser == _elementSerializer) {
return this;
}
return new StringArraySerializer(this, property, ser);
}
项目:QuizUpWinner
文件:MapSerializer.java
public JsonSerializer<?> createContextual(SerializerProvider paramSerializerProvider, BeanProperty paramBeanProperty)
{
JsonSerializer localJsonSerializer1 = null;
JsonSerializer localJsonSerializer2 = null;
if (paramBeanProperty != null)
{
AnnotatedMember localAnnotatedMember = paramBeanProperty.getMember();
localJsonSerializer1 = null;
localJsonSerializer2 = null;
if (localAnnotatedMember != null)
{
AnnotationIntrospector localAnnotationIntrospector2 = paramSerializerProvider.getAnnotationIntrospector();
Object localObject2 = localAnnotationIntrospector2.findKeySerializer(localAnnotatedMember);
localJsonSerializer2 = null;
if (localObject2 != null)
localJsonSerializer2 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject2);
Object localObject3 = localAnnotationIntrospector2.findContentSerializer(localAnnotatedMember);
localJsonSerializer1 = null;
if (localObject3 != null)
localJsonSerializer1 = paramSerializerProvider.serializerInstance(localAnnotatedMember, localObject3);
}
}
if (localJsonSerializer1 == null)
localJsonSerializer1 = this._valueSerializer;
JsonSerializer localJsonSerializer3 = findConvertingContentSerializer(paramSerializerProvider, paramBeanProperty, localJsonSerializer1);
JsonSerializer localJsonSerializer4 = localJsonSerializer3;
if (localJsonSerializer3 == null)
{
if (((this._valueTypeIsStatic) && (this._valueType.getRawClass() != Object.class)) || (hasContentTypeAnnotation(paramSerializerProvider, paramBeanProperty)))
localJsonSerializer4 = paramSerializerProvider.findValueSerializer(this._valueType, paramBeanProperty);
}
else if ((localJsonSerializer4 instanceof ContextualSerializer))
localJsonSerializer4 = ((ContextualSerializer)localJsonSerializer4).createContextual(paramSerializerProvider, paramBeanProperty);
if (localJsonSerializer2 == null)
localJsonSerializer2 = this._keySerializer;
if (localJsonSerializer2 == null)
localJsonSerializer2 = paramSerializerProvider.findKeySerializer(this._keyType, paramBeanProperty);
else if ((localJsonSerializer2 instanceof ContextualSerializer))
localJsonSerializer2 = ((ContextualSerializer)localJsonSerializer2).createContextual(paramSerializerProvider, paramBeanProperty);
Object localObject1 = this._ignoredEntries;
AnnotationIntrospector localAnnotationIntrospector1 = paramSerializerProvider.getAnnotationIntrospector();
if ((localAnnotationIntrospector1 != null) && (paramBeanProperty != null))
{
String[] arrayOfString = localAnnotationIntrospector1.findPropertiesToIgnore(paramBeanProperty.getMember());
if (arrayOfString != null)
{
HashSet localHashSet;
if (localObject1 == null)
localHashSet = new HashSet();
else
localHashSet = new HashSet((Collection)localObject1);
localObject1 = localHashSet;
int i = arrayOfString.length;
for (int j = 0; j < i; j++)
((HashSet)localObject1).add(arrayOfString[j]);
}
}
return withResolved(paramBeanProperty, localJsonSerializer2, localJsonSerializer4, (HashSet)localObject1);
}
项目:QuizUpWinner
文件:SerializerProvider.java
protected JsonSerializer<Object> _handleContextual(JsonSerializer<?> paramJsonSerializer, BeanProperty paramBeanProperty)
{
if ((paramJsonSerializer instanceof ContextualSerializer))
paramJsonSerializer = ((ContextualSerializer)paramJsonSerializer).createContextual(this, paramBeanProperty);
return paramJsonSerializer;
}
项目:joyplus-tv
文件:AsArraySerializerBase.java
/**
* This method is needed to resolve contextual annotations like
* per-property overrides, as well as do recursive call
* to <code>createContextual</code> of content serializer, if
* known statically.
*/
// @Override
public JsonSerializer<?> createContextual(SerializerProvider provider,
BeanProperty property)
throws JsonMappingException
{
TypeSerializer typeSer = _valueTypeSerializer;
if (typeSer != null) {
typeSer = typeSer.forProperty(property);
}
/* 29-Sep-2012, tatu: Actually, we need to do much more contextual
* checking here since we finally know for sure the property,
* and it may have overrides
*/
JsonSerializer<?> ser = null;
// First: if we have a property, may have property-annotation overrides
if (property != null) {
AnnotatedMember m = property.getMember();
if (m != null) {
Object serDef = provider.getAnnotationIntrospector().findContentSerializer(m);
if (serDef != null) {
ser = provider.serializerInstance(m, serDef);
}
}
}
if (ser == null) {
ser = _elementSerializer;
}
if (ser == null) {
// 30-Sep-2012, tatu: One more thing -- if explicit content type is annotated,
// we can consider it a static case as well.
if (_elementType != null) {
if (_staticTyping || hasContentTypeAnnotation(provider, property)) {
ser = provider.findValueSerializer(_elementType, property);
}
}
} else if (ser instanceof ContextualSerializer) {
ser = ((ContextualSerializer) ser).createContextual(provider, property);
}
if ((ser != _elementSerializer) || (property != _property) || _valueTypeSerializer != typeSer) {
return withResolved(property, typeSer, ser);
}
return this;
}