CurrencyAmountCentsFieldModifier.java
package com.tdmconsult.ete.utils;
import com.fasterxml.jackson.databind.BeanDescription;
import com.fasterxml.jackson.databind.SerializationConfig;
import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
import com.fasterxml.jackson.databind.util.NameTransformer;
import java.util.List;
public class CurrencyAmountCentsFieldModifier extends BeanSerializerModifier {
@Override
public List<BeanPropertyWriter> changeProperties(
final SerializationConfig config,
final BeanDescription beanDesc,
final List<BeanPropertyWriter> beanProperties) {
return beanProperties.stream().map(writer -> {
if (writer.getAnnotation(JsonCurrencyAmountCents.class) != null) {
final var modifiedWriter = writer.rename(NameTransformer.simpleTransformer("", "Cents"));
modifiedWriter.assignSerializer(new CurrencyAmountCentsSerializer());
return modifiedWriter;
} else {
return writer;
}
}).toList();
}
}