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

future-architect / uroborosql / #767

26 Aug 2024 05:08PM UTC coverage: 90.274% (-0.9%) from 91.21%
#767

push

HidekiSugimoto189
各Logger用のインタフェースを作成し必要なクラスがimplementsするように修正。そのうえでSLF4J 2.xのAPIを利用するように変更(性能改善)

360 of 568 new or added lines in 32 files covered. (63.38%)

9 existing lines in 7 files now uncovered.

8864 of 9819 relevant lines covered (90.27%)

0.9 hits per line

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

52.94
/src/main/java/jp/co/future/uroborosql/coverage/CoverageData.java
1
/**
2
 * Copyright (c) 2017-present, Future Corporation
3
 *
4
 * This source code is licensed under the MIT license found in the
5
 * LICENSE file in the root directory of this source tree.
6
 */
7
package jp.co.future.uroborosql.coverage;
8

9
import java.security.MessageDigest;
10

11
import jp.co.future.uroborosql.log.CoverageLogger;
12

13
/**
14
 * カバレッジログ出力用データクラス
15
 *
16
 * @author ota
17
 */
18
public class CoverageData implements CoverageLogger {
19
        /** SQL名. */
20
        private final String sqlName;
21

22
        /** 変換前SQL. */
23
        private final String sql;
24

25
        /** MD5文字列. */
26
        private final String md5;
27

28
        /** 分岐情報. */
29
        private final PassedRoute passRoute;
30

31
        /**
32
         * コンストラクタ
33
         *
34
         * @param sqlName SQL名
35
         * @param sql SQL
36
         * @param passRoute 分岐情報
37
         */
38
        public CoverageData(final String sqlName, final String sql, final PassedRoute passRoute) {
1✔
39
                this.sqlName = sqlName;
1✔
40
                this.sql = sql;
1✔
41
                this.md5 = makeMd5(sql);
1✔
42
                this.passRoute = passRoute;
1✔
43
        }
1✔
44

45
        /**
46
         * MD5文字列の生成
47
         *
48
         * @param original 生成元文字列
49
         * @return MD5文字列
50
         */
51
        private String makeMd5(final String original) {
52
                try {
53
                        var digest = MessageDigest.getInstance("MD5");
1✔
54
                        var hash = digest.digest(original.getBytes("UTF-8"));
1✔
55
                        var builder = new StringBuilder();
1✔
56
                        for (var element : hash) {
1✔
57
                                if ((0xff & element) < 0x10) {
1✔
58
                                        builder.append("0" + Integer.toHexString(0xff & element));
1✔
59
                                } else {
60
                                        builder.append(Integer.toHexString(0xff & element));
1✔
61
                                }
62
                        }
63
                        return builder.toString();
1✔
64
                } catch (Exception ex) {
×
NEW
65
                        COVERAGE_LOG.atError()
×
NEW
66
                                        .setMessage(ex.getMessage())
×
NEW
67
                                        .setCause(ex)
×
NEW
68
                                        .log();
×
69
                }
70
                return "";
×
71
        }
72

73
        /**
74
         * JSON化
75
         *
76
         * @return JSON
77
         */
78
        public String toJSON() {
79
                var builder = new StringBuilder();
×
80
                builder.append("{\"sqlName\":");
×
81
                if (sqlName != null) {
×
82
                        builder.append(sqlName.replace('/', '/'));
×
83
                } else {
84
                        builder.append("");
×
85
                }
86
                builder.append(",\"md5\":").append(md5)
×
87
                                .append(",\"passRoute\":").append(passRoute)
×
88
                                .append("}");
×
89
                return builder.toString();
×
90
        }
91

92
        /**
93
         * SQL名取得.
94
         *
95
         * @return SQLファイルのルートからの相対パス(ファイル拡張子なし)
96
         */
97
        public String getSqlName() {
98
                return sqlName;
1✔
99
        }
100

101
        /**
102
         * 変換前SQL取得.
103
         *
104
         * @return 変換前SQL
105
         */
106
        public String getSql() {
107
                return sql;
1✔
108
        }
109

110
        /**
111
         * SQLのMD5取得.
112
         *
113
         * @return MD5
114
         */
115
        public String getMd5() {
116
                return md5;
1✔
117
        }
118

119
        /**
120
         * 分岐情報取得.
121
         *
122
         * @return 分岐情報
123
         */
124
        public PassedRoute getPassRoute() {
125
                return passRoute;
1✔
126
        }
127

128
        /**
129
         * {@inheritDoc}
130
         *
131
         * JSON化文字列を返す
132
         *
133
         * @see java.lang.Object#toString()
134
         */
135
        @Override
136
        public String toString() {
137
                return toJSON();
×
138
        }
139

140
}
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

© 2025 Coveralls, Inc