From 3e40e5223566b681e10400c55e03f63127242124 Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Tue, 3 Jul 2018 14:02:44 +0200
Subject: [PATCH] Services: Remove the generic from the exploration service.

* The generic parameter was intended to specify the extension types
  (modules) of an exploration services.
* This information is used nowhere, so remove it.

Signed-off-by: Alexander Diewald <diewald@fortiss.org>
---
 .../af3/exploration/alg/exception/.ratings     |  2 +-
 .../exception/ExplorationServiceException.java |  5 ++---
 .../af3/exploration/alg/service/.ratings       | 12 ++++++------
 .../alg/service/ExplorationService.java        |  6 +++---
 ...orationConstraintTransformationService.java |  4 ++--
 .../IExplorationEvaluatationService.java       |  8 ++++----
 .../alg/service/IExplorationRepairService.java |  2 +-
 .../alg/service/IExplorationService.java       |  3 +--
 .../IExplorationTransformationService.java     | 12 ++++--------
 .../exploration/alg/service/internal/.ratings  |  2 +-
 .../internal/ExplorationEvaluationService.java | 18 ++++++++----------
 11 files changed, 33 insertions(+), 41 deletions(-)

diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
index 391a96bd..f31bfd9c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
@@ -1,6 +1,6 @@
 ConstraintGenerationException.java ea88d94abb652ec0c5788cb9f9856b866e7abf09 RED
 ExplorationException.java 62ce085f34132afc32eaf8ca579ae8926a3d3b70 RED
-ExplorationServiceException.java 0d93a35ea1b510d199866b9d847ae2bfa92c48cd RED
+ExplorationServiceException.java 94202232e25ac039ebcad0ee977e37c5a317111a RED
 InvalidModelException.java f5ef624ea79418ee5f6bc6acea9126094ec27c49 RED
 InvalidPlatformModelException.java b0e93b8e9b703dc33825c71d7bc542abda83a2ef RED
 InvalidTimingModelException.java 014945b26fffef745844be500ef4c2efe0bc9a27 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/ExplorationServiceException.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/ExplorationServiceException.java
index 0d93a35e..94202232 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/ExplorationServiceException.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/ExplorationServiceException.java
@@ -28,8 +28,7 @@ public class ExplorationServiceException extends ExplorationException {
 	 * Constructs an {@link ExplorationServiceException} with information about the failed
 	 * {@link IExplorationService} and the given message.
 	 */
-	public ExplorationServiceException(Class<? extends IExplorationService<?>> serviceType,
-			String msg) {
+	public ExplorationServiceException(Class<? extends IExplorationService> serviceType, String msg) {
 		super(serviceType.getSimpleName() + " failed: " + msg);
 	}
 
@@ -37,7 +36,7 @@ public class ExplorationServiceException extends ExplorationException {
 	 * Constructs a {@link ExplorationServiceException} with information about the failed
 	 * {@link IExplorationService} and the given message and the given {@link Exception}.
 	 */
-	public ExplorationServiceException(Class<? extends IExplorationService<?>> serviceType,
+	public ExplorationServiceException(Class<? extends IExplorationService> serviceType,
 			String msg, Exception e) {
 		super(serviceType.getSimpleName() + " failed: " + msg, e);
 	}
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
index a3e10a31..58a21a4a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
@@ -1,14 +1,14 @@
 ExplorationEncodingMap.java aaea06f5731018d159a04266c92f1a701e461323 RED
-ExplorationService.java 013434bf2fd9ae6d97b2540874b2fa7d75e280e2 RED
+ExplorationService.java 888656711c0e8930757acd4b25d89c77bd3e4b82 RED
 ExplorationTransformationInputs.java 3374ce609b50e69c3c29f1eb79bee25cd06b181d RED
-IExplorationConstraintTransformationService.java 06c5e34e4c9e5b752b7747f5ac853f7b8f756867 RED
+IExplorationConstraintTransformationService.java 48b673e1fb69c05e35c4e60ecf73b8f708cfcf0e RED
 IExplorationContraintTransformationModule.java 1d3560401275f719e2b9901d1639a6be6bd7c169 RED
 IExplorationEncoding.java f58adbcf840af521333c2777f50041a60548bff3 RED
-IExplorationEvaluatationService.java b4d242fb3d16796e98db31dd8db50aa4d003d49f RED
+IExplorationEvaluatationService.java c79cd47a3eac58d56071e51bb5465efefa226fc5 RED
 IExplorationExtension.java c2a148e18c580d2432357e93da45e7bf7df8eb0c RED
 IExplorationModuleService.java 9280ae46ce9918c3b58e2f8189535707ac232c1c RED
-IExplorationRepairService.java 9fdbc6c62436e32f1ebc7f3e6c43517199271f32 RED
-IExplorationService.java 29252f52f28fcd036272bbb05dcd48897ee33dfd RED
+IExplorationRepairService.java 879d73fce129cd3c4c6fd2819a5c4ed0a625c55b RED
+IExplorationService.java 5aaf2b75e88e4ee1b1a206c00e77dd173a5cdeb5 RED
 IExplorationTargetEvaluator.java 99c27a053a123462b8a4faadc9c3530fe6bc0c67 RED
-IExplorationTransformationService.java b16fb771873374a3cfd31b8e942af030e689774e RED
+IExplorationTransformationService.java eed8f4a86eda433c2fc0af00fbef31dbd942c9f0 RED
 IRepairModule.java 0cca5fea3835e4fccc151eec42232ad0e6c88e66 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationService.java
index 013434bf..88865671 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationService.java
@@ -45,7 +45,7 @@ public class ExplorationService {
 	private volatile static ExplorationService INSTANCE;
 
 	/** Associates {@link IExplorationService} types with their singleton instances. */
-	private Map<Class<? extends IExplorationService<?>>, IExplorationService<?>> services =
+	private Map<Class<? extends IExplorationService>, IExplorationService> services =
 			new HashMap<>();
 
 	/** Constructor. */
@@ -68,7 +68,7 @@ public class ExplorationService {
 	 *            Type of the service.
 	 * @return The service's instance registered for the given service type.
 	 */
-	public static <T extends IExplorationService<?>> T getService(Class<T> serviceType) {
+	public static <T extends IExplorationService> T getService(Class<T> serviceType) {
 		@SuppressWarnings("unchecked") T service = (T)getInstance().services.get(serviceType);
 		if(service == null) {
 			BundleContext ctx =
@@ -92,7 +92,7 @@ public class ExplorationService {
 	 * @throws ExplorationServiceException
 	 *             If the OSGI service holder throws an exception.
 	 */
-	public static <T extends IExplorationService<?>, S extends T, U extends T> S replaceService(
+	public static <T extends IExplorationService, S extends T, U extends T> S replaceService(
 			Class<T> serviceType, U serviceInstance) throws ExplorationServiceException {
 		@SuppressWarnings("unchecked") S oldInstance = (S)getInstance().services.get(serviceType);
 		// Decrease the service use by ungetting again.
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
index 06c5e34e..48b673e1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationConstraintTransformationService.java
@@ -17,6 +17,7 @@ package org.fortiss.af3.exploration.alg.service;
 
 import java.util.Collection;
 
+import org.eclipse.osgi.internal.module.GenericConstraint;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 import org.fortiss.af3.exploration.model.ExplorationConstraint;
@@ -30,8 +31,7 @@ import org.fortiss.af3.exploration.model.ExplorationConstraint;
  * 
  * @author diewald
  */
-public interface IExplorationConstraintTransformationService
-		extends IExplorationService<IExplorationContraintTransformationModule<?>> {
+public interface IExplorationConstraintTransformationService extends IExplorationService {
 
 	// TODO: Should we use a separate marker for external Constrains?
 	/**
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationEvaluatationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationEvaluatationService.java
index b4d242fb..c79cd47a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationEvaluatationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationEvaluatationService.java
@@ -27,8 +27,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
  * 
  * @author diewald
  */
-public interface IExplorationEvaluatationService<T extends IExplorationExtension>
-		extends IExplorationService<T> {
+public interface IExplorationEvaluatationService<T extends IExplorationExtension> extends
+		IExplorationService {
 
 	/**
 	 * Returns the collection of input model types that are required to execute the given set of
@@ -40,6 +40,6 @@ public interface IExplorationEvaluatationService<T extends IExplorationExtension
 	 * @return collection of model element types which must be provided through the transformation
 	 *         service (or directly) such that evaluator gets all the required inputs.
 	 */
-	Collection<Class<?>>
-			getRequiredTransformedModels(Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators);
+	Collection<Class<?>> getRequiredTransformedModels(
+			Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators);
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
index 9fdbc6c6..879d73fc 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationRepairService.java
@@ -25,7 +25,7 @@ import org.opt4j.core.Genotype;
  * 
  * @author diewald
  */
-public interface IExplorationRepairService extends IExplorationService<IRepairModule<?>> {
+public interface IExplorationRepairService extends IExplorationService {
 
 	/**
 	 * Returns the collection of {@link IRepairModule} instances that shall be applied to the given
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationService.java
index 29252f52..5aaf2b75 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationService.java
@@ -24,8 +24,7 @@ import org.fortiss.tooling.kernel.introspection.IIntrospectiveKernelService;
  * 
  * @author diewald
  */
-public interface IExplorationService<T extends IExplorationExtension> extends
-		IIntrospectiveKernelService {
+public interface IExplorationService extends IIntrospectiveKernelService {
 
 	/**
 	 * Initialization routine of {@link IExplorationService}s which is the first method to be
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationTransformationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationTransformationService.java
index b16fb771..eed8f4a8 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationTransformationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/IExplorationTransformationService.java
@@ -30,12 +30,9 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
  * {@link IExplorationService} interface of the {@link IExplorationTransformationService}.
  * It enables users to obtain transformed EMF models of a given type from a provided (candidate)
  * solution calculated by the DSE and the respective base models.
- * A transformed model is returned if:
- * <li>The provided input (base models and candidate solution
- * encodings) match the required ones.</li>
- * <li>All required {@link ITransformationModule}s are
- * present.</li>
- * <li>None of the executed {@link ITransformationModule}s fails.</li>
+ * A transformed model is returned if: <li>The provided input (base models and candidate solution
+ * encodings) match the required ones.</li> <li>All required {@link ITransformationModule}s are
+ * present.</li> <li>None of the executed {@link ITransformationModule}s fails.</li>
  * <p>
  * The {@link IExplorationTransformationService} is organized by {@link ITransformationStrategy}s
  * and {@link ITransformationModule}s. The modules encapsulate isolated steps in a transformation
@@ -55,8 +52,7 @@ import org.fortiss.tooling.kernel.extension.data.ITopLevelElement;
  * 
  * @author diewald
  */
-public interface IExplorationTransformationService
-		extends IExplorationService<ITransformationModule<?>> {
+public interface IExplorationTransformationService extends IExplorationService {
 	/**
 	 * Enum describing the context from which the transformation is requested. It is used to limit
 	 * the number of transformations to the required minimum to obtain a better DSE performance.
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
index 451ccb10..371047e0 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
@@ -1,4 +1,4 @@
 ExplorationConstraintTransformationService.java 5e7117398827ae129b3c9a8a16457d816ba665a7 RED
-ExplorationEvaluationService.java 96fdc6ba227cb73af2073589557364d64d93b7af RED
+ExplorationEvaluationService.java c701675e13e3b2c4725822aa80f791aa36e11b24 RED
 ExplorationRepairService.java 940ceda7c8c48f282132355249af1fe0a005c0f5 RED
 ExplorationTransformationService.java 36e2368dd6098e1f3aa210a6defd4f269628e28a RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
index 96fdc6ba..c701675e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
@@ -24,7 +24,6 @@ import java.util.Set;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.evaluate.ComposableEvaluator;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.EvaluatorWrapper;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationServiceException;
@@ -47,8 +46,8 @@ import com.google.common.collect.Multimap;
  * 
  * @author diewald
  */
-public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<?, ?, ?>>
-		extends EObjectAwareServiceBase<T> implements IExplorationEvaluatationService<T> {
+public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<?, ?, ?>> extends
+		EObjectAwareServiceBase<T> implements IExplorationEvaluatationService<T> {
 
 	/** The evaluator provider extension point ID. */
 	private static final String EXTENSION_POINT_NAME = "org.fortiss.af3.exploration.alg.evaluator";
@@ -135,8 +134,8 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Collection<Class<?>>
-			getRequiredTransformedModels(Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators) {
+	public Collection<Class<?>> getRequiredTransformedModels(
+			Set<IExplorationTargetEvaluator<?, ?, ?>> evaluators) {
 		Set<Class<?>> retVal = new HashSet<>();
 		evaluators.forEach(e -> retVal.addAll(requiredTransformedModels
 				.get((Class<IExplorationTargetEvaluator<?, ?, ?>>)e.getClass())));
@@ -182,10 +181,10 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 	private void checkInputConsistency(Collection<Class<?>> requiredNonPhenoInputs)
 			throws ExplorationServiceException {
 		for(Class<?> curInputType : requiredNonPhenoInputs) {
-			if(!getService(IExplorationTransformationService.class)
-					.canTransformOutputType(curInputType)) {
+			if(!getService(IExplorationTransformationService.class).canTransformOutputType(
+					curInputType)) {
 				throw new ExplorationServiceException(
-						(Class<? extends IExplorationService<?>>)IExplorationEvaluatationService.class,
+						(Class<? extends IExplorationService>)IExplorationEvaluatationService.class,
 						"The required input type " + curInputType.getSimpleName() +
 								" is not a Phenotype, nor can it be produced by the" +
 								" IExplorationTransformationService. Please check the required" +
@@ -230,8 +229,7 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 
 			@SuppressWarnings("unchecked") Class<P> primaryInputType =
 					(Class<P>)evaluatorHandler.getPrimaryInputType();
-			assert (Phenotype.class.isAssignableFrom(
-					primaryInputType)) : "The primary input type is not a genotype. Only Genotypes are currently supported.";
+			assert (Phenotype.class.isAssignableFrom(primaryInputType)) : "The primary input type is not a genotype. Only Genotypes are currently supported.";
 
 			int priority = 9999;
 			if(explorationTarget instanceof MOExplorationObjective<?>) {
-- 
GitLab