Language.java

1
package com.jsql.view.swing.dialog.translate;
2
3
import com.jsql.view.swing.util.I18nViewUtil;
4
import com.jsql.view.swing.util.UiUtil;
5
6
import javax.swing.*;
7
import java.util.Locale;
8
9
public enum Language {
10
    
11
    AR("Arabic", "ar", UiUtil.ICON_FLAG_AR, true, true),
12
    RU("Russian", "ru", UiUtil.ICON_FLAG_RU),
13
    ZH("Chinese", "zh", UiUtil.ICON_FLAG_ZH, true),
14
    TR("Turkish", "tr", UiUtil.ICON_FLAG_TR),
15
    EN("English", "en", UiUtil.ICON_FLAG_EN),
16
    FR("French", "fr", UiUtil.ICON_FLAG_FR),
17
    HI("Hindi", "hi", UiUtil.ICON_FLAG_HI, true),
18
    CS("Czech", "cs", UiUtil.ICON_FLAG_CS),
19
    DE("German", "de", UiUtil.ICON_FLAG_DE),
20
    NL("Dutch", "nl", UiUtil.ICON_FLAG_NL),
21
    IN("Indonesian", "in", UiUtil.ICON_FLAG_IN),
22
    IT("Italian", "it", UiUtil.ICON_FLAG_IT),
23
    ES("Spanish", "es", UiUtil.ICON_FLAG_ES),
24
    PT("Portuguese", "pt", UiUtil.ICON_FLAG_PT),
25
    PL("Polish", "pl", UiUtil.ICON_FLAG_PL),
26
    KO("Korean", "ko", UiUtil.ICON_FLAG_KO, true),
27
    JA("Japanese", "ja", UiUtil.ICON_FLAG_JA, true),
28
    RO("Romanian", "ro", UiUtil.ICON_FLAG_RO),
29
    TA("Tamil", "ta", UiUtil.ICON_FLAG_LK),
30
    SE("Swedish", "se", UiUtil.ICON_FLAG_SE),
31
    FI("Finnish", "fi", UiUtil.ICON_FLAG_FI),
32
    OT("another language", "unknown", new ImageIcon());
33
34
    private final String nameEnglish;  // required for default logging and english modal translate into
35
    private final ImageIcon flag;
36
    private final String languageTag;
37
    private final boolean isNonLatin;
38
    private final boolean isRightToLeft;
39
40
    Language(String nameEnglish, String languageTag, ImageIcon flag, boolean isNonLatin, boolean isRightToLeft) {
41
        this.nameEnglish = nameEnglish;
42
        this.flag = flag;
43
        this.languageTag = languageTag;
44
        this.isNonLatin = isNonLatin;
45
        this.isRightToLeft = isRightToLeft;
46
    }
47
48
    Language(String nameEnglish, String languageTag, ImageIcon flag, boolean isNonLatin) {
49
        this(nameEnglish, languageTag, flag, isNonLatin, false);
50
    }
51
52
    Language(String nameEnglish, String languageTag, ImageIcon flag) {
53
        this(nameEnglish, languageTag, flag, false, false);
54
    }
55
56
    public String getMenuItemLabel() {
57
        var label = Locale.forLanguageTag(this.languageTag).getDisplayLanguage(Locale.forLanguageTag(this.languageTag));
58 2 1. getMenuItemLabel : replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::getMenuItemLabel → NO_COVERAGE
2. getMenuItemLabel : negated conditional → NO_COVERAGE
        return this.isNonLatin ? I18nViewUtil.formatNonLatin(label) : label;
59
    }
60
61
    public boolean isCurrentLanguage() {
62 2 1. isCurrentLanguage : replaced boolean return with false for com/jsql/view/swing/dialog/translate/Language::isCurrentLanguage → NO_COVERAGE
2. isCurrentLanguage : replaced boolean return with true for com/jsql/view/swing/dialog/translate/Language::isCurrentLanguage → NO_COVERAGE
        return Locale.forLanguageTag(this.languageTag).getLanguage().equals(Locale.getDefault().getLanguage());
63
    }
64
65
    public ImageIcon getFlag() {
66 1 1. getFlag : replaced return value with null for com/jsql/view/swing/dialog/translate/Language::getFlag → NO_COVERAGE
        return this.flag;
67
    }
68
69
    public boolean isRightToLeft() {
70 2 1. isRightToLeft : replaced boolean return with true for com/jsql/view/swing/dialog/translate/Language::isRightToLeft → NO_COVERAGE
2. isRightToLeft : replaced boolean return with false for com/jsql/view/swing/dialog/translate/Language::isRightToLeft → NO_COVERAGE
        return this.isRightToLeft;
71
    }
72
73
    public String getLanguageTag() {
74 1 1. getLanguageTag : replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::getLanguageTag → NO_COVERAGE
        return this.languageTag;
75
    }
76
77
    @Override
78
    public String toString() {
79 1 1. toString : replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::toString → NO_COVERAGE
        return this.nameEnglish;
80
    }
81
}

Mutations

58

1.1
Location : getMenuItemLabel
Killed by : none
replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::getMenuItemLabel → NO_COVERAGE

2.2
Location : getMenuItemLabel
Killed by : none
negated conditional → NO_COVERAGE

62

1.1
Location : isCurrentLanguage
Killed by : none
replaced boolean return with false for com/jsql/view/swing/dialog/translate/Language::isCurrentLanguage → NO_COVERAGE

2.2
Location : isCurrentLanguage
Killed by : none
replaced boolean return with true for com/jsql/view/swing/dialog/translate/Language::isCurrentLanguage → NO_COVERAGE

66

1.1
Location : getFlag
Killed by : none
replaced return value with null for com/jsql/view/swing/dialog/translate/Language::getFlag → NO_COVERAGE

70

1.1
Location : isRightToLeft
Killed by : none
replaced boolean return with true for com/jsql/view/swing/dialog/translate/Language::isRightToLeft → NO_COVERAGE

2.2
Location : isRightToLeft
Killed by : none
replaced boolean return with false for com/jsql/view/swing/dialog/translate/Language::isRightToLeft → NO_COVERAGE

74

1.1
Location : getLanguageTag
Killed by : none
replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::getLanguageTag → NO_COVERAGE

79

1.1
Location : toString
Killed by : none
replaced return value with "" for com/jsql/view/swing/dialog/translate/Language::toString → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.19.1