From 4ba69065c83508cf9f997f56eec2381c9d713b28 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Wed, 5 Feb 2020 17:04:10 +0100
Subject: [PATCH] ENH: slightly improved measurement names for POV.java

---
 src/main/java/caosdb/server/query/POV.java | 44 +++++++++++-----------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/src/main/java/caosdb/server/query/POV.java b/src/main/java/caosdb/server/query/POV.java
index 6a57caa7..a50be918 100644
--- a/src/main/java/caosdb/server/query/POV.java
+++ b/src/main/java/caosdb/server/query/POV.java
@@ -43,6 +43,7 @@ import java.sql.SQLException;
 import java.sql.Types;
 import java.util.HashMap;
 import java.util.Map.Entry;
+import java.util.Stack;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import org.jdom2.Element;
@@ -70,6 +71,7 @@ public class POV implements EntityFilterInterface {
   private String refIdsTable = null;
   private final HashMap<String, String> statistics = new HashMap<>();
   private Logger logger = LoggerFactory.getLogger(getClass());
+  private Stack<String> prefix = new Stack<>();
 
   private Unit getUnit(final String s) throws ParserException {
     return CaosDBSystemOfUnits.getUnit(s);
@@ -88,6 +90,7 @@ public class POV implements EntityFilterInterface {
       final String operator,
       final String value,
       final String aggregate) {
+    prefix.add("POV");
     if (property != null && property.type != Query.Pattern.TYPE_NORMAL) {
       throw new UnsupportedOperationException(
           "Regular Expression and Like Patterns are not implemented for properties yet.");
@@ -213,7 +216,9 @@ public class POV implements EntityFilterInterface {
       this.connection = query.getConnection();
       this.targetSet = query.getTargetSet();
 
+      prefix.add("#initPOV");
       initPOV(query);
+      prefix.pop();
 
       // applyPOV(sourceSet, targetSet, propertiesTable, refIdsTable, o,
       // vText, vInt,
@@ -315,15 +320,16 @@ public class POV implements EntityFilterInterface {
       } else {
         callPOV.setNull(15, VARCHAR);
       }
-
+      prefix.add("#executeStmt");
       executeStmt(callPOV, query);
+      prefix.pop();
 
       callPOV.close();
     } catch (final SQLException e) {
       logger.error("This POV filter caused an error: " + this.toString());
       throw new QueryException(e);
     }
-    query.addBenchmark(this.getClass().getSimpleName(), System.currentTimeMillis() - t1);
+    query.addBenchmark(measurement(""), System.currentTimeMillis() - t1);
   }
 
   private void initPOV(final QueryInterface query) throws SQLException {
@@ -350,7 +356,7 @@ public class POV implements EntityFilterInterface {
       }
     }
     final long t2 = System.currentTimeMillis();
-    query.addBenchmark(getClass().getSimpleName() + ".initPOVRefidsTable()", t2 - t1);
+    query.addBenchmark(measurement(".initPOVRefidsTable()"), t2 - t1);
     try (PreparedStatement stmt =
         query.getConnection().prepareCall("call initPOVPropertiesTable(?,?,?)")) {
       // initPOVPropertiesTable(in pid INT UNSIGNED, in pname
@@ -385,36 +391,28 @@ public class POV implements EntityFilterInterface {
         final long st5 = rs.getLong("t5");
         final long st6 = rs.getLong("t6");
         if (st2 - st1 > 0) {
-          query.addBenchmark(
-              getClass().getSimpleName() + ".initPOVPropertiesTable()#initPropertiesTableByName",
-              st2 - st1);
+          query.addBenchmark(measurement("#initPropertiesTableByName"), st2 - st1);
         }
         if (st3 - st2 > 0) {
-          query.addBenchmark(
-              getClass().getSimpleName() + ".initPOVPropertiesTable()#initPropertiesTableById",
-              st3 - st2);
+          query.addBenchmark(measurement("#initPropertiesTableById"), st3 - st2);
         }
         if (st4 - st3 > 0) {
-          query.addBenchmark(
-              getClass().getSimpleName() + ".initPOVPropertiesTable()#getChildren", st4 - st3);
+          query.addBenchmark(measurement("#getChildren"), st4 - st3);
         }
         if (st5 - st4 > 0) {
-          query.addBenchmark(
-              getClass().getSimpleName() + ".initPOVPropertiesTable()#findReplacements", st5 - st4);
+          query.addBenchmark(measurement("#findReplacements"), st5 - st4);
         }
         if (st6 - st5 > 0) {
-          query.addBenchmark(
-              getClass().getSimpleName() + ".initPOVPropertiesTable()#addReplacements", st6 - st5);
+          query.addBenchmark(measurement("#addReplacements"), st6 - st5);
         }
       }
     }
     final long t3 = System.currentTimeMillis();
-    query.addBenchmark(getClass().getSimpleName() + ".initPOVPropertiesTable()", t3 - t2);
+    query.addBenchmark(measurement(""), t3 - t2);
 
     if (this.refIdsTable != null) {
       query.getQuery().applyQueryTemplates(query, this.refIdsTable);
-      query.addBenchmark(
-          getClass().getSimpleName() + ".applyQueryTemplates()", System.currentTimeMillis() - t3);
+      query.addBenchmark(measurement(".applyQueryTemplates()"), System.currentTimeMillis() - t3);
     }
 
     if (hasSubProperty() && this.targetSet != null) {
@@ -434,8 +432,7 @@ public class POV implements EntityFilterInterface {
     try {
       final long t1 = System.currentTimeMillis();
       final ResultSet rs = callPOV.executeQuery();
-      query.addBenchmark(
-          getClass().getSimpleName() + ".executeStmt()", System.currentTimeMillis() - t1);
+      query.addBenchmark(measurement(".callPOV"), System.currentTimeMillis() - t1);
       if (rs.next()) {
         final int c = rs.getMetaData().getColumnCount();
         for (int i = 0; i < c; i++) {
@@ -452,8 +449,7 @@ public class POV implements EntityFilterInterface {
       if (hasSubProperty()) {
         final long t2 = System.currentTimeMillis();
         getSubProperty().apply(query, this.targetSet, this.propertiesTable, this.refIdsTable);
-        query.addBenchmark(
-            getClass().getSimpleName() + ".applySubProperty()", System.currentTimeMillis() - t2);
+        query.addBenchmark(measurement(".applySubProperty()"), System.currentTimeMillis() - t2);
       }
     } catch (final SQLException e) {
       if (e.getMessage().trim().startsWith("Can't reopen table:") && retry > this.retry_count++) {
@@ -498,4 +494,8 @@ public class POV implements EntityFilterInterface {
   public String getAggregate() {
     return this.aggregate;
   }
+
+  private String measurement(String m) {
+    return String.join("", prefix) + m;
+  }
 }
-- 
GitLab