Made ObjectMapper field private with protected accessor

This commit is contained in:
Arjen Poutsma 2017-06-28 11:16:26 +02:00
parent 667437e300
commit b778f94a07
3 changed files with 11 additions and 7 deletions

View File

@ -62,7 +62,7 @@ public abstract class Jackson2CodecSupport {
new MimeType("application", "*+json", StandardCharsets.UTF_8));
protected final ObjectMapper objectMapper;
private final ObjectMapper objectMapper;
private final List<MimeType> mimeTypes;
@ -77,6 +77,10 @@ public abstract class Jackson2CodecSupport {
}
protected ObjectMapper objectMapper() {
return this.objectMapper;
}
protected boolean supportsMimeType(@Nullable MimeType mimeType) {
return (mimeType == null || this.mimeTypes.stream().anyMatch(m -> m.isCompatibleWith(mimeType)));
}

View File

@ -70,10 +70,10 @@ public class Jackson2JsonDecoder extends Jackson2CodecSupport implements HttpMes
@Override
public boolean canDecode(ResolvableType elementType, @Nullable MimeType mimeType) {
JavaType javaType = this.objectMapper.getTypeFactory().constructType(elementType.getType());
JavaType javaType = objectMapper().getTypeFactory().constructType(elementType.getType());
// Skip String: CharSequenceDecoder + "*/*" comes after
return (!CharSequence.class.isAssignableFrom(elementType.resolve(Object.class)) &&
this.objectMapper.canDeserialize(javaType) && supportsMimeType(mimeType));
objectMapper().canDeserialize(javaType) && supportsMimeType(mimeType));
}
@ -107,8 +107,8 @@ public class Jackson2JsonDecoder extends Jackson2CodecSupport implements HttpMes
Class<?> jsonView = (hints != null ? (Class<?>) hints.get(Jackson2CodecSupport.JSON_VIEW_HINT) : null);
ObjectReader reader = (jsonView != null ?
this.objectMapper.readerWithView(jsonView).forType(javaType) :
this.objectMapper.readerFor(javaType));
objectMapper().readerWithView(jsonView).forType(javaType) :
objectMapper().readerFor(javaType));
return objectDecoder.decode(inputStream, elementType, mimeType, hints)
.flatMap(dataBuffer -> {

View File

@ -109,7 +109,7 @@ public class Jackson2JsonEncoder extends Jackson2CodecSupport implements HttpMes
Class<?> clazz = elementType.resolve(Object.class);
return (Object.class == clazz) ||
!String.class.isAssignableFrom(elementType.resolve(clazz)) &&
this.objectMapper.canSerialize(clazz) && supportsMimeType(mimeType);
objectMapper().canSerialize(clazz) && supportsMimeType(mimeType);
}
@Override
@ -144,7 +144,7 @@ public class Jackson2JsonEncoder extends Jackson2CodecSupport implements HttpMes
JavaType javaType = getJavaType(elementType.getType(), null);
Class<?> jsonView = (hints != null ? (Class<?>) hints.get(Jackson2CodecSupport.JSON_VIEW_HINT) : null);
ObjectWriter writer = (jsonView != null ?
this.objectMapper.writerWithView(jsonView) : this.objectMapper.writer());
objectMapper().writerWithView(jsonView) : objectMapper().writer());
if (javaType.isContainerType()) {
writer = writer.forType(javaType);