From 662ad2fdd850c1cde47b13c47dcbb2cf209d009f Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Tue, 4 Jun 2013 14:46:58 +0000
Subject: [PATCH] minor refactorings

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11928 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../WeightingFunctionEvaluator.java           |  3 ++-
 .../weightingfunction/IWeightingFunction.java | 22 +++++++++++++++++--
 .../RandomWeightsWeightingFunction.java       |  6 +++++
 .../weightingfunction/WeightedSum.java        |  5 +++--
 4 files changed, 31 insertions(+), 5 deletions(-)

diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/WeightingFunctionEvaluator.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/WeightingFunctionEvaluator.java
index ba9ffcc4..91ec0e64 100644
--- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/WeightingFunctionEvaluator.java
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/WeightingFunctionEvaluator.java
@@ -26,7 +26,7 @@ public class WeightingFunctionEvaluator implements IEvaluator {
     public void evaluate(WeightedTactic tactic) {
         WeightingFunction f = tactic.getParentStrategy().getWeightingFunction();
         
-        final String functionClassName = f.getWeightingFunction();
+        final String functionClassName = f.getWeightingFunctionImplementation();
 
         Object o = null;
         try {
@@ -44,6 +44,7 @@ public class WeightingFunctionEvaluator implements IEvaluator {
         }
         
         calculator = (IWeightingFunction) o;
+        calculator.setWeightingFunction(f);
         double newWeight = calculator.calculateWeight(tactic);
         logger.debug("Setting new weight of " + tactic.getName() + " to " + newWeight);
         tactic.setCurrentWeight(newWeight);
diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/IWeightingFunction.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/IWeightingFunction.java
index 68571370..284d82a1 100644
--- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/IWeightingFunction.java
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/IWeightingFunction.java
@@ -1,15 +1,33 @@
 package edu.kit.ipd.descartes.adaptation.evaluation.weightingfunction;
 
 import edu.kit.ipd.descartes.mm.adaptation.Tactic;
+import edu.kit.ipd.descartes.mm.adaptation.WeightedMetric;
 import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
+import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction;
 
+/**
+ * @author nhuber
+ *
+ */
 public interface IWeightingFunction {
 	
-	/**
+    
+    /**
+     * Sets the {@link WeightingFunction} that can be used
+     * by the {@link WeightingFunction} to derive the 
+     * {@link WeightedMetric}s used to calculate the weight.
+     * 
+     * @param function
+     */
+    void setWeightingFunction(WeightingFunction function);
+    
+    /**
 	 * Calculates the new weight of the given {@link Tactic}.
 	 * 
 	 * @param impact
 	 * @return
 	 */
-	double calculateWeight(WeightedTactic weightedTactic);
+    double calculateWeight(WeightedTactic weightedTactic);
+
+
 }
diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/RandomWeightsWeightingFunction.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/RandomWeightsWeightingFunction.java
index 245197be..ae2ade11 100644
--- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/RandomWeightsWeightingFunction.java
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/RandomWeightsWeightingFunction.java
@@ -3,6 +3,7 @@ package edu.kit.ipd.descartes.adaptation.evaluation.weightingfunction;
 import java.util.Random;
 
 import edu.kit.ipd.descartes.mm.adaptation.WeightedTactic;
+import edu.kit.ipd.descartes.mm.adaptation.WeightingFunction;
 
 public class RandomWeightsWeightingFunction implements IWeightingFunction {
 
@@ -11,4 +12,9 @@ public class RandomWeightsWeightingFunction implements IWeightingFunction {
 		Random r = new Random(System.currentTimeMillis());
 		return r.nextDouble();
 	}
+
+    @Override
+    public void setWeightingFunction(WeightingFunction function) {
+        // Left empty intentionally
+    }
 }
diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/WeightedSum.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/WeightedSum.java
index 5394adb8..cd172d7c 100644
--- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/WeightedSum.java
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/evaluation/weightingfunction/WeightedSum.java
@@ -14,14 +14,14 @@ public class WeightedSum implements IWeightingFunction {
 	private Logger logger = Logger.getLogger(WeightedSum.class);
 	private WeightingFunction weightingFunction = null;
 
-	public WeightedSum(WeightingFunction f) {
-	    setWeightingFunction(f);
+	public WeightedSum() {
 	}
 	
     public WeightingFunction getWeightingFunction() {
         return weightingFunction;
     }
 
+    @Override
     public void setWeightingFunction(WeightingFunction weightingFunction) {
         this.weightingFunction = weightingFunction;
     }
@@ -58,4 +58,5 @@ public class WeightedSum implements IWeightingFunction {
 
 		return newWeight;
 	}
+
 }
-- 
GitLab