UiStringUtil.java

1
package com.jsql.view.swing.util;
2
3
import org.apache.commons.lang3.StringUtils;
4
import org.mozilla.universalchardet.UniversalDetector;
5
6
import java.nio.charset.StandardCharsets;
7
8
public class UiStringUtil {
9
10
    private UiStringUtil() {
11
        // Utility class
12
    }
13
    
14
    public static String detectUtf8Html(String text) {
15 1 1. detectUtf8Html : replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8Html → NO_COVERAGE
        return UiStringUtil.detectUtf8Html(text, false);
16
    }
17
    
18
    public static String detectUtf8HtmlNoWrap(String text) {
19 1 1. detectUtf8HtmlNoWrap : replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8HtmlNoWrap → NO_COVERAGE
        return UiStringUtil.detectUtf8Html(text, true);
20
    }
21
    
22
    public static String detectUtf8Html(String text, boolean nowrap) {
23
        
24
        // Fix #35217: NullPointerException on getBytes()
25 1 1. detectUtf8Html : negated conditional → NO_COVERAGE
        if (text == null) {
26
            return StringUtils.EMPTY;
27
        }
28
        
29
        var detector = new UniversalDetector(null);
30
        
31
        // Decode bytes for potentially UTF8 chars
32
        // Required by asian and hindi chars, otherwise wrong display in database tree
33 1 1. detectUtf8Html : removed call to org/mozilla/universalchardet/UniversalDetector::handleData → NO_COVERAGE
        detector.handleData(
34
            text.getBytes(StandardCharsets.UTF_8),
35
            0,
36 1 1. detectUtf8Html : Replaced integer subtraction with addition → NO_COVERAGE
            text.length() - 1
37
        );
38
        
39 1 1. detectUtf8Html : removed call to org/mozilla/universalchardet/UniversalDetector::dataEnd → NO_COVERAGE
        detector.dataEnd();
40
        String encoding = detector.getDetectedCharset();
41
        String result = text;
42
        
43
        // Confirm UTF8
44 1 1. detectUtf8Html : negated conditional → NO_COVERAGE
        if (encoding != null) {
45
            result = String.format(
46
                "<html><span style=\"font-family:'%s';%s\">%s</span></html>",
47
                UiUtil.FONT_NAME_MONO_ASIAN,
48 1 1. detectUtf8Html : negated conditional → NO_COVERAGE
                nowrap ? "white-space:nowrap;" : StringUtils.EMPTY,
49
                text
50
            );
51
        }
52
        
53 1 1. detectUtf8Html : replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8Html → NO_COVERAGE
        return result;
54
    }
55
}

Mutations

15

1.1
Location : detectUtf8Html
Killed by : none
replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8Html → NO_COVERAGE

19

1.1
Location : detectUtf8HtmlNoWrap
Killed by : none
replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8HtmlNoWrap → NO_COVERAGE

25

1.1
Location : detectUtf8Html
Killed by : none
negated conditional → NO_COVERAGE

33

1.1
Location : detectUtf8Html
Killed by : none
removed call to org/mozilla/universalchardet/UniversalDetector::handleData → NO_COVERAGE

36

1.1
Location : detectUtf8Html
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

39

1.1
Location : detectUtf8Html
Killed by : none
removed call to org/mozilla/universalchardet/UniversalDetector::dataEnd → NO_COVERAGE

44

1.1
Location : detectUtf8Html
Killed by : none
negated conditional → NO_COVERAGE

48

1.1
Location : detectUtf8Html
Killed by : none
negated conditional → NO_COVERAGE

53

1.1
Location : detectUtf8Html
Killed by : none
replaced return value with "" for com/jsql/view/swing/util/UiStringUtil::detectUtf8Html → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.16.1