}
private SchemaAware getValueSerializer(Object valueAsJavaType) throws JsonMappingException {
SerializerProvider serializerProvider = new DefaultSerializerProvider.Impl().createInstance(OBJECT_MAPPER.getSerializationConfig(), BeanSerializerFactory.instance);
if (valueAsJavaType == null) {
return NullSerializer.instance;
} else if (valueAsJavaType instanceof Long) {
// longs are 'integers' in schema terms
JsonSerializer<Object> valueSerializer = serializerProvider.findValueSerializer(Integer.class, null);
return (SchemaAware) valueSerializer;
} else {
Class<? extends Object> javaTypeForValue = valueAsJavaType.getClass();
JsonSerializer<Object> valueSerializer = serializerProvider.findValueSerializer(javaTypeForValue, null);
return (SchemaAware) valueSerializer;
}
}