From d84cd0c75ee55dffc89a69d93d2f712d0879f29f Mon Sep 17 00:00:00 2001
From: Nikolaus Huber <nikolaus.huber@uni-wuerzburg.de>
Date: Mon, 3 Jun 2013 12:38:24 +0000
Subject: [PATCH] Extracted event stuff

git-svn-id: https://se1.informatik.uni-wuerzburg.de/usvn/svn/code/code/DMM/trunk@11900 9e42b895-fcda-4063-8a3b-11be15eb1bbd
---
 .../default.properties                        | 10 ++---
 .../adaptation/AdaptationControl.java         | 41 ++++---------------
 .../adaptation/event/EventTypeEnum.java       | 40 ++++++++++++++++++
 3 files changed, 54 insertions(+), 37 deletions(-)
 create mode 100644 edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/event/EventTypeEnum.java

diff --git a/edu.kit.ipd.descartes.adaptation/default.properties b/edu.kit.ipd.descartes.adaptation/default.properties
index 41e3ee54..63d10d40 100644
--- a/edu.kit.ipd.descartes.adaptation/default.properties
+++ b/edu.kit.ipd.descartes.adaptation/default.properties
@@ -3,7 +3,7 @@
 #perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
 #perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/test_models/PerformanceDataRepositoryDummy.xmi
 #process.maxiterations=2
-## The list of triggering events can be found in AdaptationControl.java
+## The list of triggering events can be found in EventTypeEnum.java
 #event.type=
 
 #process.name=SEAMS_PushPull-v1
@@ -11,7 +11,7 @@
 #perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
 #perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/simucomresults.perfdatarepo
 #process.maxiterations=2
-## The list of triggering events can be found in AdaptationControl.java
+## The list of triggering events can be found in EventTypeEnum.java
 #event.type=SlaViolatedEvent
 
 #process.name=BlueYonderTestAdaptationProcess
@@ -19,7 +19,7 @@
 #perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
 #perfdatarepo.instance=../Examples/SEAMS_Case_Study/simucom-simulationResults.perfdatarepo
 #process.maxiterations=1
-### The list of triggering events can be found in AdaptationControl.java
+### The list of triggering events can be found in EventTypeEnum.java
 #event.type=BottleneckFoundEvent
 
 #process.name=SEAMS_PushPull-v2
@@ -27,7 +27,7 @@
 #perfdatarepo.metamodel=edu.kit.ipd.descartes.perfdatarepo.PerformanceDataRepository
 #perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/edu.kit.ipd.descartes.adaptation.test/SEAMSv2_Case_Study/simucom-simulationResults.perfdatarepo
 #process.maxiterations=2
-## The list of triggering events can be found in AdaptationControl.java
+## The list of triggering events can be found in EventTypeEnum.java
 #event.type=SlaViolatedEvent
 
 process.name=SEAMS_PushPull-v1
@@ -35,5 +35,5 @@ adaptationprocess.instance=/Users/nhuber/Documents/workspace/descartes/metamodel
 perfdatarepo.metamodel=edu.kit.ipd.descartes.ql.models.repository.ObservationRepository
 perfdatarepo.instance=/Users/nhuber/Documents/workspace/descartes/metamodel/Examples/SEAMS_Case_Study/pushpull-simresults.pdr
 process.maxiterations=2
-# The list of triggering events can be found in AdaptationControl.java
+# The list of triggering events can be found in EventTypeEnum.java
 event.type=SlaViolatedEvent
\ No newline at end of file
diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/AdaptationControl.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/AdaptationControl.java
index ec5d51dd..76cd4d4b 100644
--- a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/AdaptationControl.java
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/AdaptationControl.java
@@ -11,6 +11,7 @@ import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.xmi.DanglingHREFException;
 
 import edu.kit.ipd.descartes.adaptation.evaluation.WeightingFunctionEvaluator;
+import edu.kit.ipd.descartes.adaptation.event.EventTypeEnum;
 import edu.kit.ipd.descartes.adaptation.model.analysis.IModelAnalyzer;
 import edu.kit.ipd.descartes.adaptation.model.analysis.pcm.PcmModelAnalyzer;
 import edu.kit.ipd.descartes.adaptation.model.dmm.AdaptationProcessModelLoader;
@@ -26,32 +27,6 @@ import edu.kit.ipd.descartes.perfdatarepo.Impact;
 
 public class AdaptationControl {
 
-    public enum EventType {
-        SLA_VIOLATION("SlaViolatedEvent", "12345"), SCHEDULED_OPTIMIZATION("ScheduledOptimizationEvent",
-                "_H_MTgIAnEeKW2vVcg5ekRw"), BOTTLENECK_FOUND("BottleneckFoundEvent", "_VvZEwKEoEeKDl52Xojo4CQ"),
-                CUSTOMER_WORKLOAD_UPDATE("CustomerWorkloadUpdate","_XvZEwKEoEeKDl52Xojo4KQ");
-
-        private final String name;
-        private final String id;
-
-        EventType(String name, String id) {
-            this.name = name;
-            this.id = id;
-        }
-
-        public static EventType getEventType(String eventTypeName) {
-            if (eventTypeName.equals(SLA_VIOLATION.name))
-                return SLA_VIOLATION;
-            if (eventTypeName.equals(SCHEDULED_OPTIMIZATION.name))
-                return SCHEDULED_OPTIMIZATION;
-            if (eventTypeName.equals(BOTTLENECK_FOUND.name))
-                return BOTTLENECK_FOUND;
-            if (eventTypeName.equals(CUSTOMER_WORKLOAD_UPDATE.name))
-                return CUSTOMER_WORKLOAD_UPDATE;
-            return null;
-        }
-    }
-
     private static final String DEFAULT_PROP_FILE_PATH = "./default.properties";
     private static final String PROP_ADAPTATION_PROCESS_XMI_FILE_PATH_NAME = "adaptationprocess.instance";
     private static final String PROP_PERF_DATA_REPO_XMI_FILE_PATH_NAME = "perfdatarepo.instance";
@@ -143,12 +118,14 @@ public class AdaptationControl {
     }
 
     public void init(String propertiesFile) {
+
+        if (propertiesFile == null || propertiesFile.equals("")) {
+            logger.warn("No properties file given. Using default properties...");
+            propertiesFile = DEFAULT_PROP_FILE_PATH;
+        }
         try {
             // load properties file
-            if (propertiesFile == null || propertiesFile.equals(""))
-                loadProperties(DEFAULT_PROP_FILE_PATH);
-            else
-                loadProperties(propertiesFile);
+            loadProperties(propertiesFile);
 
             // load required models
             adaptationProcess = adaptationProcessModelLoader.load(URI.createFileURI(adaptationProcessXmiFilePath));
@@ -196,7 +173,7 @@ public class AdaptationControl {
 
     // Creates an "artifical event". Will be replaced later when integrated in the system
     private Event findTriggeringEvent() {
-        EventType type = EventType.getEventType(eventType);
+        EventTypeEnum type = EventTypeEnum.getEventType(eventType);
 
         if (type == null) {
             logger.error("Could not create event " + eventType);
@@ -205,7 +182,7 @@ public class AdaptationControl {
 
         for (Strategy strategy : adaptationProcess.getStrategies()) {
             Event event = strategy.getTriggeringEvents();
-            if (event.getId().equals(type.id)&&event.getName().equals(type.name)){
+            if (event.getId().equals(type.getId())&&event.getName().equals(type.getName())){
                 cause = event;
                 return event;
             }
diff --git a/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/event/EventTypeEnum.java b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/event/EventTypeEnum.java
new file mode 100644
index 00000000..ea03b550
--- /dev/null
+++ b/edu.kit.ipd.descartes.adaptation/src/edu/kit/ipd/descartes/adaptation/event/EventTypeEnum.java
@@ -0,0 +1,40 @@
+package edu.kit.ipd.descartes.adaptation.event;
+
+public enum EventTypeEnum {
+    
+    SLA_VIOLATION("SlaViolatedEvent", "12345"), 
+    SCHEDULED_OPTIMIZATION("ScheduledOptimizationEvent","_H_MTgIAnEeKW2vVcg5ekRw"), 
+    BOTTLENECK_FOUND("BottleneckFoundEvent", "_VvZEwKEoEeKDl52Xojo4CQ"), 
+    CUSTOMER_WORKLOAD_UPDATE("CustomerWorkloadUpdate", "_XvZEwKEoEeKDl52Xojo4KQ"),
+    OPTIMIZATION_PERIOD("OptimizationPeriod","_E6I-wMwxEeKRorfNQMmH1Q");
+
+    private final String name;
+    private final String id;
+
+    public String getId() {
+        return id;
+    }
+    
+    public String getName() {
+        return name;
+    }
+
+    EventTypeEnum(String name, String id) {
+        this.name = name;
+        this.id = id;
+    }
+
+    public static EventTypeEnum getEventType(String eventTypeName) {
+        if (eventTypeName.equals(SLA_VIOLATION.name))
+            return SLA_VIOLATION;
+        if (eventTypeName.equals(SCHEDULED_OPTIMIZATION.name))
+            return SCHEDULED_OPTIMIZATION;
+        if (eventTypeName.equals(BOTTLENECK_FOUND.name))
+            return BOTTLENECK_FOUND;
+        if (eventTypeName.equals(CUSTOMER_WORKLOAD_UPDATE.name))
+            return CUSTOMER_WORKLOAD_UPDATE;
+        if (eventTypeName.equals(OPTIMIZATION_PERIOD.name))
+            return OPTIMIZATION_PERIOD;
+        return null;
+    }
+}
-- 
GitLab