Skip to content

Commit 8dfb38f

Browse files
Merge pull request #122 from utPLSQL/feature/refactoring
Feature/refactoring
2 parents 5b262a4 + 7ae1cb3 commit 8dfb38f

33 files changed

+183
-208
lines changed

sqldev/src/main/java/org/utplsql/sqldev/coverage/CodeCoverageReporter.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ private void populateCoverageAssets() {
152152
Path f = Paths.get(assetDir.toString() + File.separator + entry.getName().substring(ASSETS_PATH.length()));
153153
copyStreamToFile(jar.getInputStream(entry), f);
154154
}
155+
jar.close();
155156
} else {
156157
// class loaded from file system (IDE or during test/build)
157158
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();

sqldev/src/main/java/org/utplsql/sqldev/dal/RealtimeReporterDao.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252

5353
import oracle.jdbc.OracleTypes;
5454

55-
@SuppressWarnings("StringBufferReplaceableByString")
5655
public class RealtimeReporterDao {
5756
private static final Logger logger = Logger.getLogger(RealtimeReporterDao.class.getName());
5857
private static final int FIRST_VERSION_WITH_REALTIME_REPORTER = 3001004;
@@ -246,7 +245,6 @@ private RealtimeReporterEvent convert(final String itemType, final String text)
246245
}
247246
}
248247

249-
@SuppressWarnings("DuplicatedCode")
250248
private RealtimeReporterEvent convertToPreRunEvent(final Document doc) {
251249
final PreRunEvent event = new PreRunEvent();
252250
final Node totalNumberOfTestsNode = xmlTools.getNode(doc, "/event/totalNumberOfTests");
@@ -327,7 +325,6 @@ private RealtimeReporterEvent convertToPostTestEvent(final Document doc) {
327325
return event;
328326
}
329327

330-
@SuppressWarnings("DuplicatedCode")
331328
private void populate(final Suite suite, final Node node) {
332329
if (node instanceof Element) {
333330
suite.setId(xmlTools.getAttributeValue(node, "id"));

sqldev/src/main/java/org/utplsql/sqldev/dal/RealtimeReporterEventConsumer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,5 @@
1818
import org.utplsql.sqldev.model.runner.RealtimeReporterEvent;
1919

2020
public interface RealtimeReporterEventConsumer {
21-
public abstract void process(final RealtimeReporterEvent event);
21+
void process(final RealtimeReporterEvent event);
2222
}

sqldev/src/main/java/org/utplsql/sqldev/dal/UtplsqlDao.java

Lines changed: 64 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,9 @@
1616
package org.utplsql.sqldev.dal;
1717

1818
import java.net.URL;
19-
import java.sql.CallableStatement;
2019
import java.sql.Connection;
21-
import java.sql.SQLException;
2220
import java.sql.Types;
23-
import java.util.Arrays;
21+
import java.util.Collections;
2422
import java.util.List;
2523
import java.util.regex.Matcher;
2624
import java.util.regex.Pattern;
@@ -38,13 +36,12 @@
3836

3937
public class UtplsqlDao {
4038
public static final String UTPLSQL_PACKAGE_NAME = "UT";
41-
public static final int NOT_INSTALLED = 0;
4239
public static final int FIRST_VERSION_WITH_INTERNAL_ANNOTATION_API = 3000004;
4340
public static final int FIRST_VERSION_WITH_ANNOTATION_API = 3001003;
4441
public static final int FIRST_VERSION_WITHOUT_INTERNAL_API = 3001008;
4542
public static final int FIRST_VERSION_WITH_HAS_SUITES_API = 3001008;
4643
public static final int FETCH_ROWS = 100;
47-
private JdbcTemplate jdbcTemplate;
44+
private final JdbcTemplate jdbcTemplate;
4845
// cache fields
4946
private Boolean cachedDbaViewAccessible;
5047
private String cachedUtplsqlSchema;
@@ -90,7 +87,7 @@ public int normalizedUtPlsqlVersionNumber() {
9087
final String minor = m.group();
9188
m.find();
9289
final String bugfix = m.group();
93-
return Integer.valueOf(major) * 1000000 + Integer.valueOf(minor) * 1000 + Integer.valueOf(bugfix);
90+
return Integer.parseInt(major) * 1000000 + Integer.parseInt(minor) * 1000 + Integer.parseInt(bugfix);
9491
}
9592

9693
/**
@@ -104,13 +101,10 @@ public String getUtPlsqlVersion() {
104101
sb.append("END;");
105102
final String sql = sb.toString();
106103
try {
107-
cachedUtPlsqlVersion = jdbcTemplate.execute(sql, new CallableStatementCallback<String>() {
108-
@Override
109-
public String doInCallableStatement(final CallableStatement cs) throws SQLException {
110-
cs.registerOutParameter(1, Types.VARCHAR);
111-
cs.execute();
112-
return cs.getString(1);
113-
}
104+
cachedUtPlsqlVersion = jdbcTemplate.execute(sql, (CallableStatementCallback<String>) cs -> {
105+
cs.registerOutParameter(1, Types.VARCHAR);
106+
cs.execute();
107+
return cs.getString(1);
114108
});
115109
} catch (DataAccessException e) {
116110
// ignore error
@@ -141,7 +135,7 @@ public boolean isDbaViewAccessible() {
141135
cachedDbaViewAccessible = false;
142136
}
143137
}
144-
return cachedDbaViewAccessible.booleanValue();
138+
return cachedDbaViewAccessible;
145139
}
146140

147141
public String getDbaView(String viewName) {
@@ -178,8 +172,7 @@ public String getUtplsqlSchema() {
178172
sb.append("'");
179173
final String sql = sb.toString();
180174
try {
181-
final String schema = jdbcTemplate.queryForObject(sql, String.class);
182-
cachedUtplsqlSchema = schema;
175+
cachedUtplsqlSchema = jdbcTemplate.queryForObject(sql, String.class);
183176
} catch (EmptyResultDataAccessException e) {
184177
cachedUtplsqlSchema = null;
185178
}
@@ -229,18 +222,16 @@ public boolean containsUtplsqlTest(final String owner, final String objectName,
229222
sb.append(" ? := l_return;\n");
230223
sb.append("END;");
231224
final String sql = sb.toString();
232-
return jdbcTemplate.execute(sql, new CallableStatementCallback<Boolean>() {
233-
@Override
234-
public Boolean doInCallableStatement(final CallableStatement cs) throws SQLException {
235-
cs.setString(1, owner);
236-
cs.setString(2, objectName);
237-
cs.setString(3, subobjectName);
238-
cs.registerOutParameter(4, Types.VARCHAR);
239-
cs.execute();
240-
final String ret = cs.getString(4);
241-
return "1".equals(ret);
242-
}
225+
final Boolean ret = jdbcTemplate.execute(sql, (CallableStatementCallback<Boolean>) cs -> {
226+
cs.setString(1, owner);
227+
cs.setString(2, objectName);
228+
cs.setString(3, subobjectName);
229+
cs.registerOutParameter(4, Types.VARCHAR);
230+
cs.execute();
231+
final String ret1 = cs.getString(4);
232+
return "1".equals(ret1);
243233
});
234+
return ret != null && ret;
244235
} else if (normalizedUtPlsqlVersionNumber() >= FIRST_VERSION_WITH_ANNOTATION_API) {
245236
// using API available since 3.1.3, can handle nulls in objectName and subobjectName
246237
StringBuilder sb = new StringBuilder();
@@ -251,7 +242,7 @@ public Boolean doInCallableStatement(final CallableStatement cs) throws SQLExcep
251242
final String sql = sb.toString();
252243
final Object[] binds = new Object[] {owner, objectName, subobjectName, subobjectName};
253244
final Integer found = jdbcTemplate.queryForObject(sql, Integer.class, binds);
254-
return found > 0;
245+
return found != null && found > 0;
255246
} else {
256247
// using internal API (deprecated, not accessible in latest version)
257248
StringBuilder sb = new StringBuilder();
@@ -282,7 +273,7 @@ public Boolean doInCallableStatement(final CallableStatement cs) throws SQLExcep
282273
final String sql = sb.toString();
283274
final Object[] binds = new Object[] {subobjectName, subobjectName, owner, objectName, objectName};
284275
final Integer found = jdbcTemplate.queryForObject(sql, Integer.class, binds);
285-
return found > 0;
276+
return found != null && found > 0;
286277
}
287278
} catch (EmptyResultDataAccessException e) {
288279
return false;
@@ -302,17 +293,14 @@ public boolean containsUtplsqlTest(final String owner) {
302293
sb.append(" ? := l_return;\n");
303294
sb.append("END;");
304295
final String sql = sb.toString();
305-
return jdbcTemplate.execute(sql, new CallableStatementCallback<Boolean>() {
306-
@Override
307-
public Boolean doInCallableStatement(final CallableStatement cs)
308-
throws SQLException {
309-
cs.setString(1, owner);
310-
cs.registerOutParameter(2, Types.VARCHAR);
311-
cs.execute();
312-
final String ret = cs.getString(2);
313-
return "1".equals(ret);
314-
}
296+
final Boolean ret = jdbcTemplate.execute(sql, (CallableStatementCallback<Boolean>) cs -> {
297+
cs.setString(1, owner);
298+
cs.registerOutParameter(2, Types.VARCHAR);
299+
cs.execute();
300+
final String ret1 = cs.getString(2);
301+
return "1".equals(ret1);
315302
});
303+
return ret != null && ret;
316304
} else {
317305
return containsUtplsqlTest(owner, null, null);
318306
}
@@ -330,18 +318,15 @@ public boolean containsUtplsqlTest(final String owner, final String objectName)
330318
sb.append(" ? := l_return;\n");
331319
sb.append("END;");
332320
final String sql = sb.toString();
333-
return jdbcTemplate.execute(sql, new CallableStatementCallback<Boolean>() {
334-
@Override
335-
public Boolean doInCallableStatement(final CallableStatement cs)
336-
throws SQLException {
337-
cs.setString(1, owner);
338-
cs.setString(2, objectName);
339-
cs.registerOutParameter(3, Types.VARCHAR);
340-
cs.execute();
341-
final String ret = cs.getString(3);
342-
return "1".equals(ret);
343-
}
321+
Boolean ret = jdbcTemplate.execute(sql, (CallableStatementCallback<Boolean>) cs -> {
322+
cs.setString(1, owner);
323+
cs.setString(2, objectName);
324+
cs.registerOutParameter(3, Types.VARCHAR);
325+
cs.execute();
326+
final String ret1 = cs.getString(3);
327+
return "1".equals(ret1);
344328
});
329+
return ret != null && ret;
345330
} else {
346331
return containsUtplsqlTest(owner, objectName, null);
347332
}
@@ -410,7 +395,7 @@ public List<String> units(final String objectType, final String objectName) {
410395
final Object[] binds = new Object[] {objectType, objectName};
411396
return jdbcTemplate.queryForList(sql, String.class, binds);
412397
} else {
413-
return Arrays.asList(objectName);
398+
return Collections.singletonList(objectName);
414399
}
415400
}
416401

@@ -868,30 +853,34 @@ public String getDbmsOutput(final int bufferSize) {
868853
sb.append(" sys.dbms_output.get_lines(?, ?);\n");
869854
sb.append("END;");
870855
final String sql = sb.toString();
871-
OutputLines ret = null;
856+
OutputLines ret;
872857
do {
873-
ret = jdbcTemplate.execute(sql, new CallableStatementCallback<OutputLines>() {
874-
@Override
875-
public OutputLines doInCallableStatement(final CallableStatement cs) throws SQLException {
876-
cs.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
877-
cs.registerOutParameter(2, Types.INTEGER);
878-
cs.setInt(2, bufferSize);
879-
cs.execute();
880-
final OutputLines out = new OutputLines();
858+
ret = jdbcTemplate.execute(sql, (CallableStatementCallback<OutputLines>) cs -> {
859+
cs.registerOutParameter(1, Types.ARRAY, "DBMSOUTPUT_LINESARRAY");
860+
cs.registerOutParameter(2, Types.INTEGER);
861+
cs.setInt(2, bufferSize);
862+
cs.execute();
863+
final OutputLines out = new OutputLines();
864+
try {
881865
Object array = cs.getArray(1).getArray();
882866
out.setLines((String[]) array);
883867
out.setNumlines(cs.getInt(2));
884-
return out;
868+
} catch (NullPointerException e) {
869+
out.setLines(null);
870+
out.setNumlines(0);
885871
}
872+
return out;
886873
});
887-
for (int i = 0; i < ret.getNumlines(); i++) {
888-
final String line = ret.getLines()[i];
889-
if (line != null) {
890-
resultSb.append(ret.getLines()[i]);
874+
if (ret != null && ret.getNumlines() != null) {
875+
for (int i = 0; i < ret.getNumlines(); i++) {
876+
final String line = ret.getLines()[i];
877+
if (line != null) {
878+
resultSb.append(ret.getLines()[i]);
879+
}
880+
resultSb.append(System.lineSeparator());
891881
}
892-
resultSb.append(System.lineSeparator());
893882
}
894-
} while (ret.getNumlines() > 0);
883+
} while (ret != null && ret.getNumlines() != null && ret.getNumlines() > 0);
895884
return resultSb.toString();
896885
}
897886

@@ -1032,16 +1021,13 @@ public String getSource(final String owner, final String objectType, final Strin
10321021
sb.append(" );\n");
10331022
sb.append("END;");
10341023
final String sql = sb.toString();
1035-
return jdbcTemplate.execute(sql, new CallableStatementCallback<String>() {
1036-
@Override
1037-
public String doInCallableStatement(final CallableStatement cs) throws SQLException {
1038-
cs.registerOutParameter(1, Types.CLOB);
1039-
cs.setString(2, owner);
1040-
cs.setString(3, fixedObjectType);
1041-
cs.setString(4, objectName);
1042-
cs.execute();
1043-
return cs.getString(1);
1044-
}
1024+
return jdbcTemplate.execute(sql, (CallableStatementCallback<String>) cs -> {
1025+
cs.registerOutParameter(1, Types.CLOB);
1026+
cs.setString(2, owner);
1027+
cs.setString(3, fixedObjectType);
1028+
cs.setString(4, objectName);
1029+
cs.execute();
1030+
return cs.getString(1);
10451031
});
10461032
}
10471033

@@ -1071,6 +1057,6 @@ public String getObjectType(final String owner, final String objectName) {
10711057
sb.append(" WHERE rownum = 1");
10721058
final String sql = sb.toString();
10731059
final Object[] binds = new Object[] {owner, objectName};
1074-
return jdbcTemplate.queryForObject(sql, binds, String.class);
1060+
return jdbcTemplate.queryForObject(sql, String.class, binds);
10751061
}
10761062
}

sqldev/src/main/java/org/utplsql/sqldev/model/JsonToStringStyler.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121

2222
import javax.annotation.Nullable;
2323

24+
import org.jetbrains.annotations.NotNull;
2425
import org.springframework.core.style.ToStringStyler;
2526
import org.springframework.core.style.ValueStyler;
2627

2728
public class JsonToStringStyler implements ToStringStyler, ValueStyler{
2829
public static final String INDENT_SPACES = " ";
2930
private int indent = 0;
3031

31-
private static ThreadLocal<JsonToStringStyler> threadLocal = ThreadLocal.withInitial(JsonToStringStyler::new);
32+
private static final ThreadLocal<JsonToStringStyler> threadLocal = ThreadLocal.withInitial(JsonToStringStyler::new);
3233

3334
private void newLine(StringBuilder buffer) {
3435
buffer.append('\n');
@@ -102,7 +103,7 @@ public static ToStringStyler getInstance() {
102103
}
103104

104105
@Override
105-
public void styleStart(StringBuilder buffer, Object obj) {
106+
public void styleStart(@NotNull StringBuilder buffer, Object obj) {
106107
indent++;
107108
if (!obj.getClass().isArray()) {
108109
buffer.append("{");
@@ -119,7 +120,7 @@ public void styleStart(StringBuilder buffer, Object obj) {
119120
}
120121

121122
@Override
122-
public void styleEnd(StringBuilder buffer, Object obj) {
123+
public void styleEnd(@NotNull StringBuilder buffer, Object obj) {
123124
indent--;
124125
newLine(buffer);
125126
if (!obj.getClass().isArray()) {
@@ -130,7 +131,7 @@ public void styleEnd(StringBuilder buffer, Object obj) {
130131
}
131132

132133
@Override
133-
public void styleField(StringBuilder buffer, String fieldName, @Nullable Object value) {
134+
public void styleField(@NotNull StringBuilder buffer, @NotNull String fieldName, @Nullable Object value) {
134135
newLine(buffer);
135136
buffer.append('"');
136137
buffer.append(fieldName);
@@ -140,7 +141,7 @@ public void styleField(StringBuilder buffer, String fieldName, @Nullable Object
140141
}
141142

142143
@Override
143-
public void styleValue(StringBuilder buffer, Object value) {
144+
public void styleValue(StringBuilder buffer, @Nullable Object value) {
144145
buffer.append(style(value));
145146
}
146147

@@ -149,6 +150,7 @@ public void styleFieldSeparator(StringBuilder buffer) {
149150
buffer.append(",");
150151
}
151152

153+
@NotNull
152154
@Override
153155
public String style(Object value) {
154156
if (value == null) {

sqldev/src/main/java/org/utplsql/sqldev/model/LimitedLinkedHashMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import java.util.LinkedHashMap;
1919
import java.util.Map;
2020

21-
public class LimitedLinkedHashMap<K extends Object, V extends Object> extends LinkedHashMap<K, V> {
21+
public class LimitedLinkedHashMap<K, V> extends LinkedHashMap<K, V> {
2222
private static final long serialVersionUID = -4184317926729190411L;
2323
private final int maxEntries;
2424

sqldev/src/main/java/org/utplsql/sqldev/model/XMLTools.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public String nodeToString(final Node node, final String cdataSectionElements) {
106106
public String getAttributeValue(final Node node, final String namedItem) {
107107
String value = null;
108108
if (node instanceof Element) {
109-
final NamedNodeMap attributes = ((Element) node).getAttributes();
109+
final NamedNodeMap attributes = node.getAttributes();
110110
if (attributes != null) {
111111
final Node item = attributes.getNamedItem(namedItem);
112112
if (item != null) {

sqldev/src/main/java/org/utplsql/sqldev/model/runner/Run.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.utplsql.sqldev.model.JsonToStringStyler;
2424
import org.utplsql.sqldev.model.URLTools;
2525

26-
@SuppressWarnings("unused")
2726
public class Run {
2827
private String reporterId;
2928
private String connectionName;

sqldev/src/main/java/org/utplsql/sqldev/model/runner/Test.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.utplsql.sqldev.model.JsonToStringStyler;
2424
import org.utplsql.sqldev.resources.UtplsqlResources;
2525

26-
@SuppressWarnings("unused")
2726
public class Test extends Item {
2827
private String executableType;
2928
private String ownerName;

0 commit comments

Comments
 (0)