From 7edcf49217d578c288f43fda4a560b38bb7a50d5 Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Wed, 6 Feb 2019 10:55:41 +0100
Subject: [PATCH] change api to make it usable from the connector

---
 .../de/tudresden/inf/st/mquat/eris/ErisMQuATBuilder.java | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/ErisMQuATBuilder.java b/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/ErisMQuATBuilder.java
index 461f4e7..1d39e57 100644
--- a/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/ErisMQuATBuilder.java
+++ b/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/ErisMQuATBuilder.java
@@ -5,6 +5,7 @@ import de.tudresden.inf.st.mquat.jastadd.model.*;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -248,7 +249,7 @@ public class ErisMQuATBuilder {
 //          }
 
           // ref is the best direct or indirect access path
-          // score = ref.lookuptime*this.count - this.lookuptime*this.count - this.inserts*this.insertTime
+          // score = ref.lookuptime*this.numLookups - this.lookuptime*this.numLookups - this.inserts*this.insertTime
           // because we do not know ref.lookuptime here, we omit this part. it is irrelevant for selecting the index
           // access path, anyway. It is required later during the decision IF the index should be built. So the actual
           // score is:
@@ -265,7 +266,7 @@ public class ErisMQuATBuilder {
           int att_count = attStats.getCount();
 
           // get the correct size
-          int lookupsize = getLookupSize(lookupProperties, att_count);
+          int lookupsize = getLookupSize(lookupProperties.keySet(), att_count);
           {
             MultExpression negatedLoopups = new MultExpression(new LiteralExpression(-num_lookups), new PropertyResourceDesignator(indexAccessPathInstance.createRef(), lookupProperties.get(lookupsize).createRef()));
             MultExpression inserts = new MultExpression(new LiteralExpression(num_inserts), new PropertyResourceDesignator(indexAccessPathInstance.createRef(), insertProperties.get(lookupsize).createRef()));
@@ -328,11 +329,11 @@ public class ErisMQuATBuilder {
     return root;
   }
 
-  private static int getLookupSize(Map<Integer, Property> lookupProperties, int att_count) {
+  private static int getLookupSize(Collection<Integer> lookupSizes, int att_count) {
     // get the correct size
     int lookupsize = 0;
     int dist = Integer.MAX_VALUE;
-    for (Integer i : lookupProperties.keySet()) {
+    for (Integer i : lookupSizes) {
       if (Math.abs(att_count - i) < dist) {
         dist = Math.abs(att_count - i);
         lookupsize = i;
-- 
GitLab