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

Mutations

63

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

67

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

71

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

75

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

79

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

84

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.23.0