This is an automated email from the ASF dual-hosted git repository.

hxd pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 73dd5eb6e44e2194b650eea72aabcfaf929e5bdc
Author: xiangdong huang <[email protected]>
AuthorDate: Sun May 3 11:07:57 2020 +0800

    fix sonar code smell
---
 .../iotdb/web/grafana/dao/impl/BasicDaoImpl.java   | 86 +++++++++++-----------
 1 file changed, 45 insertions(+), 41 deletions(-)

diff --git 
a/grafana/src/main/java/org/apache/iotdb/web/grafana/dao/impl/BasicDaoImpl.java 
b/grafana/src/main/java/org/apache/iotdb/web/grafana/dao/impl/BasicDaoImpl.java
index 53f9303..0cdfef5 100644
--- 
a/grafana/src/main/java/org/apache/iotdb/web/grafana/dao/impl/BasicDaoImpl.java
+++ 
b/grafana/src/main/java/org/apache/iotdb/web/grafana/dao/impl/BasicDaoImpl.java
@@ -18,8 +18,15 @@
  */
 package org.apache.iotdb.web.grafana.dao.impl;
 
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
 import java.time.Duration;
+import java.time.ZonedDateTime;
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.List;
 import org.apache.iotdb.tsfile.utils.Pair;
 import org.apache.iotdb.web.grafana.bean.TimeValues;
 import org.apache.iotdb.web.grafana.dao.BasicDao;
@@ -33,15 +40,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Repository;
 
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
 /**
  * Created by dell on 2017/7/17.
  */
@@ -53,7 +51,7 @@ public class BasicDaoImpl implements BasicDao {
 
   private final JdbcTemplate jdbcTemplate;
 
-  private static long TIMESTAMP_RADIX = -1L;
+  private static long timestampRadioX = -1L;
 
   @Value("${timestamp_precision}")
   private String timestampPrecision = "ms";
@@ -62,10 +60,10 @@ public class BasicDaoImpl implements BasicDao {
   private boolean isDownSampling;
 
   @Value("${continuous_data_function}")
-  private String continuous_data_function;
+  private String continuousDataFunction;
 
   @Value("${discrete_data_function}")
-  private String discrete_data_function;
+  private String discreteDataFunction;
 
   @Value("${interval}")
   private String interval;
@@ -80,21 +78,37 @@ public class BasicDaoImpl implements BasicDao {
   public List<String> getMetaData() {
     ConnectionCallback<Object> connectionCallback = new 
ConnectionCallback<Object>() {
       public Object doInConnection(Connection connection) throws SQLException {
-        Statement statement = connection.createStatement();
-        statement.execute("show timeseries root.*");
-        ResultSet resultSet = statement.getResultSet();
-        logger.info("Start to get timeseries");
-        List<String> columnsName = new ArrayList<>();
-        while (resultSet.next()) {
-          String timeseries = resultSet.getString(1);
-          columnsName.add(timeseries.substring(5));
+        try (Statement statement = connection.createStatement()) {
+          statement.execute("show timeseries root.*");
+          try(ResultSet resultSet = statement.getResultSet()) {
+            logger.info("Start to get timeseries");
+            List<String> columnsName = new ArrayList<>();
+            while (resultSet.next()) {
+              String timeseries = resultSet.getString(1);
+              columnsName.add(timeseries.substring(5));
+            }
+            return columnsName;
+          }
         }
-        return columnsName;
       }
     };
     return (List<String>) jdbcTemplate.execute(connectionCallback);
   }
 
+  public static void setTimestampRadioX(String timestampPrecision) {
+    switch (timestampPrecision) {
+      case "us":
+        timestampRadioX = 1000;
+        break;
+      case "ns":
+        timestampRadioX = 1000_000;
+        break;
+      default:
+        timestampRadioX = 1;
+    }
+    logger.info("Use timestamp precision {}", timestampPrecision);
+  }
+
   /**
   * Note: If the query fails this could be due to AGGREGATIION like AVG on 
booleayn field.
   * Thus, we then do a retry with FIRST aggregation.
@@ -102,27 +116,17 @@ public class BasicDaoImpl implements BasicDao {
   */
   @Override
   public List<TimeValues> querySeries(String s, Pair<ZonedDateTime, 
ZonedDateTime> timeRange) {
-    if (TIMESTAMP_RADIX == -1) {
-      switch (timestampPrecision) {
-        case "us":
-          TIMESTAMP_RADIX = 1000;
-          break;
-        case "ns":
-          TIMESTAMP_RADIX = 1000_000;
-          break;
-        default:
-          TIMESTAMP_RADIX = 1;
-      }
-      logger.info("Use timestamp precision {}", timestampPrecision);
+    if (timestampRadioX == -1) {
+      setTimestampRadioX(timestampPrecision);
     }
     try {
-      return querySeriesInternal(s, timeRange, continuous_data_function);
+      return querySeriesInternal(s, timeRange, continuousDataFunction);
     } catch (Exception e) {
-      // Try it with discrete_data_function
+      // Try it with discreteDataFunction
       try {
-        return querySeriesInternal(s, timeRange, discrete_data_function);
+        return querySeriesInternal(s, timeRange, discreteDataFunction);
       } catch (Exception e2) {
-        logger.warn("Even {} query did not succeed, returning NULL now", 
discrete_data_function, e2);
+        logger.warn("Even {} query did not succeed, returning NULL now", 
discreteDataFunction, e2);
         return Collections.emptyList();
       }
     }
@@ -135,7 +139,7 @@ public class BasicDaoImpl implements BasicDao {
     List<TimeValues> rows = null;
     String sql = String.format("SELECT %s FROM root.%s WHERE time > %d and 
time < %d",
         s.substring(s.lastIndexOf('.') + 1), s.substring(0, 
s.lastIndexOf('.')),
-        from * TIMESTAMP_RADIX, to * TIMESTAMP_RADIX);
+        from * timestampRadioX, to * timestampRadioX);
     String columnName = "root." + s;
     if (isDownSampling && (hours > 1)) {
       if (hours < 30 * 24 && hours > 24) {
@@ -147,8 +151,8 @@ public class BasicDaoImpl implements BasicDao {
           "SELECT " + function
               + "(%s) FROM root.%s WHERE time > %d and time < %d group by 
([%d, %d),%s)",
           s.substring(s.lastIndexOf('.') + 1), s.substring(0, 
s.lastIndexOf('.')),
-          from * TIMESTAMP_RADIX, to * TIMESTAMP_RADIX,
-          from * TIMESTAMP_RADIX, to * TIMESTAMP_RADIX, interval);
+          from * timestampRadioX, to * timestampRadioX,
+          from * timestampRadioX, to * timestampRadioX, interval);
       columnName = function + "(root." + s + ")";
     }
     logger.info(sql);
@@ -175,7 +179,7 @@ public class BasicDaoImpl implements BasicDao {
     @Override
     public TimeValues mapRow(ResultSet resultSet, int i) throws SQLException {
       TimeValues tv = new TimeValues();
-      tv.setTime(resultSet.getLong("Time") / TIMESTAMP_RADIX);
+      tv.setTime(resultSet.getLong("Time") / timestampRadioX);
       String valueString = resultSet.getString(columnName);
       if (valueString != null) {
         try {

Reply via email to