From a182c6f7e078168413d504ec996b1eab9bffdc7d Mon Sep 17 00:00:00 2001
From: Konstantin Blaschke <blaschke@fortiss.org>
Date: Mon, 18 Sep 2023 12:51:01 +0200
Subject: [PATCH] Merging first local review Issue-Ref: 4310 Issue-Url:
 https://git.fortiss.org/af3/af3/-/issues/4310 Signed-off-by: Konstantin
 Blaschke <blaschke@fortiss.org>

---
 .../org/fortiss/tooling/ext/quality/.ratings   |  2 +-
 .../ext/quality/GraphMetricsProvider.java      | 18 ++++++++++++------
 .../ext/quality/HierarchicElementProvider.java |  1 -
 .../tooling/ext/quality/IMetricProvider.java   |  1 -
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/.ratings b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/.ratings
index f6e940178..839f38ab6 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/.ratings
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/.ratings
@@ -1,4 +1,4 @@
 AF3QualityActivator.java 353c3d99f423997e4e99a896b3c095fd77d81431 YELLOW
 GraphMetricsProvider.java 2d3fff61af2537bc5b10b3c210dc8e4b3ad49c1d YELLOW
 HierarchicElementProvider.java 3c114abd47ecc0d7da751c3f05c83fd49a30717b YELLOW
-IMetricProvider.java 5e3d0debc0f81ed4e6c7dbc0f8d0e55df1bfde39 YELLOW
+IMetricProvider.java 99fc8993b0e65b2f8757978eeb0481d912f5608c YELLOW
diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/GraphMetricsProvider.java b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/GraphMetricsProvider.java
index 2d3fff61a..7077c4334 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/GraphMetricsProvider.java
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/GraphMetricsProvider.java
@@ -310,12 +310,18 @@ public class GraphMetricsProvider {
 				}
 			}
 			// Save metric
-			MetricKey key = recursively ? MetricKey.BETWEENESS_CENTRALITY_RECURSIVELY
-					: MetricKey.BETWEENESS_CENTRALITY;
-			for(IHierarchicElement child : scopeElement.getContainedElements()) {
-				manager.getTreeNodeLookupTable().get(child).getStoredDoubles().put(key,
-						betweenness.get(child));
-			}
+			saveMetric(scopeElement, manager, recursively, betweenness);
+		}
+	}
+	
+	/** Saving the metrics for each contained element of an {@link IHierarchicElement}. */
+	private static void saveMetric(IHierarchicElement scopeElement, MetricDataManager manager, boolean recursively,
+			Map<IHierarchicElement, Double> betweenness) {
+		MetricKey key = recursively ? MetricKey.BETWEENESS_CENTRALITY_RECURSIVELY
+				: MetricKey.BETWEENESS_CENTRALITY;
+		for(IHierarchicElement child : scopeElement.getContainedElements()) {
+			manager.getTreeNodeLookupTable().get(child).getStoredDoubles().put(key,
+					betweenness.get(child));
 		}
 	}
 }
diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/HierarchicElementProvider.java b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/HierarchicElementProvider.java
index 3c114abd4..721c03e40 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/HierarchicElementProvider.java
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/HierarchicElementProvider.java
@@ -27,7 +27,6 @@ import org.fortiss.tooling.kernel.utils.EcoreUtils;
 /**
  * {@link IMetricProvider} to collect various metrics from an {@link IHierarchicElement}.
  * 
- * @author blaschke
  * @author groh
  */
 public class HierarchicElementProvider implements IMetricProvider<IHierarchicElement> {
diff --git a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/IMetricProvider.java b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/IMetricProvider.java
index 5e3d0debc..99fc8993b 100644
--- a/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/IMetricProvider.java
+++ b/org.fortiss.tooling.ext.quality/src/org/fortiss/tooling/ext/quality/IMetricProvider.java
@@ -22,7 +22,6 @@ import org.fortiss.tooling.kernel.service.base.IEObjectAware;
 
 /**
  * Interface for all metric providers.
- * <P>
  * They are called by {@link IModelQualityService} to collect metrics on model elements.
  * 
  * @author blaschke
-- 
GitLab