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

trydofor / professional-mirana / #112

19 Mar 2025 04:46AM UTC coverage: 87.128% (+2.7%) from 84.4%
#112

push

web-flow
Merge pull request #53 from trydofor/develop

bump 3.0.0 to semver

1645 of 1747 new or added lines in 25 files covered. (94.16%)

2 existing lines in 1 file now uncovered.

7141 of 8196 relevant lines covered (87.13%)

0.87 hits per line

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

88.1
/src/main/java/pro/fessional/mirana/i18n/I18nMessage.java
1
package pro.fessional.mirana.i18n;
2

3

4
import org.jetbrains.annotations.Contract;
5
import org.jetbrains.annotations.NotNull;
6
import pro.fessional.mirana.cast.ChainingCast;
7

8
import java.beans.Transient;
9
import java.util.Arrays;
10
import java.util.Locale;
11
import java.util.Objects;
12

13
/**
14
 * <pre>
15
 * global message for user, the i18n templates and parameters should be merged into
16
 * a local message based on the user's language, rather than the default message.
17
 *
18
 * - message - default i18n message or template
19
 * - i18nCode - i18n template code
20
 * - i18nArgs - i18n template args
21
 * </pre>
22
 */
23
public class I18nMessage implements ChainingCast, I18nAware {
1✔
24

25
    private static final long serialVersionUID = 19791023L;
26

27
    protected String message;
28
    protected String i18nCode;
29
    protected Object[] i18nArgs;
30
    
31
    public String getMessage() {
32
        return message;
1✔
33
    }
34

35
    @Contract("_->this")
36
    public I18nMessage setMessage(String message) {
37
        this.message = message;
1✔
38
        return this;
1✔
39
    }
40

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

46
    @Contract("_->this")
47
    public I18nMessage setI18nCode(String i18nCode) {
48
        this.i18nCode = i18nCode;
1✔
49
        return this;
1✔
50
    }
51

52
    @Override
53
    public Object[] getI18nArgs() {
54
        return i18nArgs;
1✔
55
    }
56

57

58
    @Contract("_->this")
59
    public I18nMessage setI18nArgs(Object... i18nArgs) {
60
        this.i18nArgs = i18nArgs;
1✔
61
        return this;
1✔
62
    }
63

64
    @Transient
65
    @Override
66
    public String getI18nHint() {
67
        return message;
1✔
68
    }
69

70
    @Transient
71
    @Contract("_->this")
72
    public I18nMessage setMessageBy(I18nAware ia) {
73
        if (ia != null) {
1✔
74
            setMessage(ia.getI18nHint());
1✔
75
            setI18nCode(ia.getI18nCode());
1✔
76
            setI18nArgs(ia.getI18nArgs());
1✔
77
        }
78
        return this;
1✔
79
    }
80

81
    @Transient
82
    @Contract("_,_->this")
83
    public I18nMessage setMessageBy(String message, I18nAware ia) {
84
        setMessageBy(ia);
1✔
85
        setMessage(message);
1✔
86
        return this;
1✔
87
    }
88

89
    @Transient
90
    @Contract("_,_->this")
91
    public I18nMessage setMessageBy(String message, String i18nCode) {
92
        setMessage(message);
1✔
93
        setI18nCode(i18nCode);
1✔
94
        return this;
1✔
95
    }
96

97
    @Transient
98
    @Contract("_,_,_->this")
99
    public I18nMessage setMessageBy(String message, String i18nCode, Object... i18nArgs) {
100
        setMessage(message);
1✔
101
        setI18nCode(i18nCode);
1✔
102
        setI18nArgs(i18nArgs);
1✔
103
        return this;
1✔
104
    }
105

106
    @Override
107
    public void applyLocale(Locale locale, @NotNull I18nSource source) {
108
        setMessage(toString(locale, source));
1✔
109
    }
1✔
110

111
    @Override
112
    public boolean equals(Object o) {
113
        if (this == o) return true;
1✔
114
        if (o == null || getClass() != o.getClass()) return false;
1✔
115
        I18nMessage that = (I18nMessage) o;
1✔
116
        return Objects.equals(message, that.message)
1✔
117
               && Objects.equals(i18nCode, that.i18nCode)
1✔
118
               && Objects.deepEquals(i18nArgs, that.i18nArgs);
1✔
119
    }
120

121
    @Override
122
    public int hashCode() {
123
        return Objects.hash(message, i18nCode, Arrays.hashCode(i18nArgs));
1✔
124
    }
125

126
    @Override
127
    public String toString() {
128
        return "I18nMessage{" +
1✔
129
               "message='" + message + '\'' +
130
               ", i18nCode='" + i18nCode + '\'' +
131
               ", i18nArgs=" + Arrays.toString(i18nArgs) +
1✔
132
               '}';
133
    }
134

135
    public static I18nMessage of(@NotNull I18nAware i18n){
NEW
136
        I18nMessage msg = new I18nMessage();
×
NEW
137
        msg.setMessage(i18n.getI18nHint());
×
NEW
138
        msg.setI18nCode(i18n.getI18nCode());
×
NEW
139
        msg.setI18nArgs(i18n.getI18nArgs());
×
NEW
140
        return msg;
×
141
    }
142
}
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