Index: branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/GQAPSolutionArchiveAnalyzer.cs
===================================================================
--- branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/GQAPSolutionArchiveAnalyzer.cs	(revision 7418)
+++ branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/GQAPSolutionArchiveAnalyzer.cs	(revision 7419)
@@ -35,60 +35,52 @@
   [Item("GeneralizedQAP Solution Archive Analyzer", "An operator for analyzing the archive of found solutions for the GQAP.")]
   [StorableClass]
-  public sealed class GQAPSolutionArchiveAnalyzer : SingleSuccessorOperator, IAnalyzer {
+  public sealed class GQAPSolutionArchiveAnalyzer : SingleSuccessorOperator, IAssignmentsAwareGQAPOperator,
+    IQualitiesAwareGQAPOperator, IDistancesAwareGQAPOperator, IWeightsAwareGQAPOperator, IInstallationCostsAwareGQAPOperator,
+    IDemandsAwareGQAPOperator, ICapacitiesAwareGQAPOperator, ITransportationCostsAwareGQAPOperator,
+    IOverbookedCapacityPenaltyAwareGQAPOperator, IEquipmentNamesAwareGQAPOperator, ILocationNamesAwareGQAPOperator,
+    IBestKnownQualityAwareGQAPOperator, IBestKnownSolutionAwareGQAPOperator, IAnalyzer {
 
     public bool EnabledByDefault {
-      get { return true; }
+      get { return false; }
     }
 
-    public LookupParameter<BoolValue> MaximizationParameter {
-      get { return (LookupParameter<BoolValue>)Parameters["Maximization"]; }
+    public IScopeTreeLookupParameter<IntegerVector> AssignmentParameter {
+      get { return (IScopeTreeLookupParameter<IntegerVector>)Parameters["Assignment"]; }
     }
-    public LookupParameter<DoubleMatrix> DistancesParameter {
-      get { return (LookupParameter<DoubleMatrix>)Parameters["Distances"]; }
+    public ILookupParameter<BoolValue> MaximizationParameter {
+      get { return (ILookupParameter<BoolValue>)Parameters["Maximization"]; }
     }
-    public LookupParameter<DoubleMatrix> WeightsParameter {
-      get { return (LookupParameter<DoubleMatrix>)Parameters["Weights"]; }
+    public IScopeTreeLookupParameter<DoubleValue> QualityParameter {
+      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
     }
-    public LookupParameter<DoubleMatrix> InstallationCostsParameter {
-      get { return (LookupParameter<DoubleMatrix>)Parameters["InstallationCosts"]; }
+    public IScopeTreeLookupParameter<DoubleValue> FlowDistanceQualityParameter {
+      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["FlowDistanceQuality"]; }
     }
-    public LookupParameter<DoubleArray> DemandsParameter {
-      get { return (LookupParameter<DoubleArray>)Parameters["Demands"]; }
+    public IScopeTreeLookupParameter<DoubleValue> InstallationQualityParameter {
+      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["InstallationQuality"]; }
     }
-    public LookupParameter<DoubleArray> CapacitiesParameter {
-      get { return (LookupParameter<DoubleArray>)Parameters["Capacities"]; }
+    public IScopeTreeLookupParameter<DoubleValue> OverbookedCapacityParameter {
+      get { return (IScopeTreeLookupParameter<DoubleValue>)Parameters["OverbookedCapacity"]; }
     }
-    public LookupParameter<DoubleValue> TransportationCostsParameter {
-      get { return (LookupParameter<DoubleValue>)Parameters["TransportationCosts"]; }
+    public ILookupParameter<DoubleMatrix> DistancesParameter {
+      get { return (ILookupParameter<DoubleMatrix>)Parameters["Distances"]; }
     }
-    public LookupParameter<DoubleValue> OverbookedCapacityPenaltyParameter {
-      get { return (LookupParameter<DoubleValue>)Parameters["OverbookedCapacityPenalty"]; }
+    public ILookupParameter<DoubleMatrix> WeightsParameter {
+      get { return (ILookupParameter<DoubleMatrix>)Parameters["Weights"]; }
     }
-    public ScopeTreeLookupParameter<IntegerVector> AssignmentParameter {
-      get { return (ScopeTreeLookupParameter<IntegerVector>)Parameters["Assignment"]; }
+    public ILookupParameter<DoubleMatrix> InstallationCostsParameter {
+      get { return (ILookupParameter<DoubleMatrix>)Parameters["InstallationCosts"]; }
     }
-    public ScopeTreeLookupParameter<DoubleValue> QualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["Quality"]; }
+    public ILookupParameter<DoubleArray> DemandsParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters["Demands"]; }
     }
-    public ScopeTreeLookupParameter<DoubleValue> FlowDistanceQualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["FlowDistanceQuality"]; }
+    public ILookupParameter<DoubleArray> CapacitiesParameter {
+      get { return (ILookupParameter<DoubleArray>)Parameters["Capacities"]; }
     }
-    public ScopeTreeLookupParameter<DoubleValue> InstallationQualityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["InstallationQuality"]; }
+    public IValueLookupParameter<DoubleValue> TransportationCostsParameter {
+      get { return (IValueLookupParameter<DoubleValue>)Parameters["TransportationCosts"]; }
     }
-    public ScopeTreeLookupParameter<DoubleValue> OverbookedCapacityParameter {
-      get { return (ScopeTreeLookupParameter<DoubleValue>)Parameters["OverbookedCapacity"]; }
-    }
-    public LookupParameter<GQAPAssignment> BestSolutionParameter {
-      get { return (LookupParameter<GQAPAssignment>)Parameters["BestSolution"]; }
-    }
-    public ValueLookupParameter<ResultCollection> ResultsParameter {
-      get { return (ValueLookupParameter<ResultCollection>)Parameters["Results"]; }
-    }
-    public LookupParameter<DoubleValue> BestKnownQualityParameter {
-      get { return (LookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
-    }
-    public LookupParameter<IntegerVector> BestKnownSolutionParameter {
-      get { return (LookupParameter<IntegerVector>)Parameters["BestKnownSolution"]; }
+    public IValueLookupParameter<DoubleValue> OverbookedCapacityPenaltyParameter {
+      get { return (IValueLookupParameter<DoubleValue>)Parameters["OverbookedCapacityPenalty"]; }
     }
     public ILookupParameter<StringArray> EquipmentNamesParameter {
@@ -97,4 +89,16 @@
     public ILookupParameter<StringArray> LocationNamesParameter {
       get { return (ILookupParameter<StringArray>)Parameters["LocationNames"]; }
+    }
+    public ILookupParameter<DoubleValue> BestKnownQualityParameter {
+      get { return (ILookupParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
+    }
+    public ILookupParameter<IntegerVector> BestKnownSolutionParameter {
+      get { return (ILookupParameter<IntegerVector>)Parameters["BestKnownSolution"]; }
+    }
+    public ILookupParameter<GQAPAssignment> BestSolutionParameter {
+      get { return (ILookupParameter<GQAPAssignment>)Parameters["BestSolution"]; }
+    }
+    public IValueLookupParameter<ResultCollection> ResultsParameter {
+      get { return (IValueLookupParameter<ResultCollection>)Parameters["Results"]; }
     }
 
@@ -113,6 +117,6 @@
       Parameters.Add(new LookupParameter<DoubleArray>("Demands", "The demands of the equipments."));
       Parameters.Add(new LookupParameter<DoubleArray>("Capacities", "The capacities at the locations."));
-      Parameters.Add(new LookupParameter<DoubleValue>("TransportationCosts", "The transportation cost represents the flow-unit per distance-unit cost factor. This value can also be set to 1 if these costs are factored into the weights matrix already."));
-      Parameters.Add(new LookupParameter<DoubleValue>("OverbookedCapacityPenalty", "The multiplier for the constraint violation when added to the quality."));
+      Parameters.Add(new ValueLookupParameter<DoubleValue>("TransportationCosts", "The transportation cost represents the flow-unit per distance-unit cost factor. This value can also be set to 1 if these costs are factored into the weights matrix already."));
+      Parameters.Add(new ValueLookupParameter<DoubleValue>("OverbookedCapacityPenalty", "The multiplier for the constraint violation when added to the quality."));
       Parameters.Add(new ScopeTreeLookupParameter<IntegerVector>("Assignment", "The GQAP solutions from which the best solution should be analyzed."));
       Parameters.Add(new ScopeTreeLookupParameter<DoubleValue>("Quality", "The qualities of the GQAP solutions which should be analyzed."));
