|
1 | 1 | package de.rwth.idsg.ocpp.jaxb.validation; |
2 | 2 |
|
| 3 | +import lombok.RequiredArgsConstructor; |
3 | 4 | import tools.jackson.core.JacksonException; |
4 | 5 | import tools.jackson.core.JsonGenerator; |
5 | 6 | import tools.jackson.databind.SerializationContext; |
6 | | -import tools.jackson.databind.ser.BeanSerializer; |
| 7 | +import tools.jackson.databind.ValueSerializer; |
7 | 8 | import tools.jackson.databind.ser.bean.BeanSerializerBase; |
8 | 9 |
|
9 | 10 | import jakarta.validation.ConstraintViolationException; |
10 | 11 | import jakarta.validation.Validator; |
11 | 12 |
|
12 | | -public class BeanSerializerWithValidation extends BeanSerializer { |
| 13 | +@RequiredArgsConstructor |
| 14 | +public class BeanSerializerWithValidation extends ValueSerializer<Object> { |
13 | 15 |
|
| 16 | + private final BeanSerializerBase delegate; |
14 | 17 | private final Validator validator; |
15 | 18 |
|
16 | | - public BeanSerializerWithValidation(BeanSerializerBase src, Validator validator) { |
17 | | - super(src); |
18 | | - this.validator = validator; |
19 | | - } |
20 | | - |
21 | 19 | @Override |
22 | | - public void serialize(Object bean, JsonGenerator gen, SerializationContext provider) throws JacksonException { |
| 20 | + public void serialize(Object bean, JsonGenerator gen, SerializationContext ctxt) throws JacksonException { |
23 | 21 | var violations = validator.validate(bean); |
24 | 22 | if (!violations.isEmpty()) { |
25 | 23 | throw new ConstraintViolationException(violations); |
26 | 24 | } |
27 | 25 |
|
28 | | - super.serialize(bean, gen, provider); |
| 26 | + delegate.serialize(bean, gen, ctxt); |
29 | 27 | } |
| 28 | + |
30 | 29 | } |
0 commit comments