• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

trydofor / professional-wings / #137

03 Feb 2025 03:30PM UTC coverage: 63.633% (-0.07%) from 63.705%
#137

push

trydofor
✨ I18nMessage compatible config #312

18 of 23 new or added lines in 5 files covered. (78.26%)

30 existing lines in 2 files now uncovered.

12936 of 20329 relevant lines covered (63.63%)

0.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

85.71
/wings/slardar/src/main/java/pro/fessional/wings/slardar/jackson/I18nMessagePropertyFilter.java
1
package pro.fessional.wings.slardar.jackson;
2

3
import com.fasterxml.jackson.annotation.JsonFilter;
4
import com.fasterxml.jackson.core.JsonGenerator;
5
import com.fasterxml.jackson.databind.SerializerProvider;
6
import com.fasterxml.jackson.databind.ser.PropertyWriter;
7
import lombok.extern.slf4j.Slf4j;
8
import pro.fessional.mirana.best.ReadOnly;
9
import pro.fessional.mirana.data.R;
10
import pro.fessional.mirana.i18n.I18nAware;
11
import pro.fessional.mirana.i18n.I18nMessage;
12
import pro.fessional.mirana.i18n.I18nNotice;
13
import pro.fessional.wings.slardar.context.LocaleZoneIdUtil;
14

15
import java.util.List;
16
import java.util.Locale;
17

18
/**
19
 * @author trydofor
20
 * @since 2019-10-14
21
 */
22
@Slf4j
1✔
23
public class I18nMessagePropertyFilter implements AutoRegisterPropertyFilter {
24

25
    public static final String Id = "I18nMessage";
26

27
    @JsonFilter(Id)
28
    public static class I18nMessageMixin {
×
29
    }
30

31
    public static final Class<?> MixinClass = I18nMessage.class;
1✔
32

33
    private final I18nAware.I18nSource i18nSource;
34
    private final int resultCompatible;
35

36
    public I18nMessagePropertyFilter(I18nAware.I18nSource i18nSource, Integer resultCompatible) {
1✔
37
        this.i18nSource = i18nSource;
1✔
38
        this.resultCompatible = resultCompatible == null ? 0 : resultCompatible;
1✔
39
    }
1✔
40

41
    @Override
42
    public String getId() {
43
        return Id;
1✔
44
    }
45

46
    @Override
47
    public void serializeAsField(Object pojo, JsonGenerator gen, SerializerProvider prov, PropertyWriter writer) throws Exception {
48
        if (!(pojo instanceof ReadOnly)) {
1✔
49
            Locale locale = LocaleZoneIdUtil.LocaleNonnull();
1✔
50
            ((I18nMessage) pojo).setMessageBy(locale, i18nSource);
1✔
51

52
            if (resultCompatible > 0 && pojo instanceof R<?> rs && rs.getMessage() == null) {
1✔
53
                List<I18nNotice> errors = rs.getErrors();
1✔
54
                if (errors != null && !errors.isEmpty()) {
1✔
55
                    I18nNotice err = errors.getFirst();
1✔
56
                    rs.setMessage(err.getMessage());
1✔
57
                    if (resultCompatible > 1) {
1✔
NEW
58
                        rs.setI18nCode(err.getI18nCode());
×
NEW
59
                        rs.setI18nArgs(err.getI18nArgs());
×
60
                    }
61
                }
62
            }
63
        }
64
        writer.serializeAsField(pojo, gen, prov);
1✔
65
    }
1✔
66
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc