Index: /trunk/sources/HeuristicLab.CEDMA.Operators/DoubleRangeVariableInjector.cs
===================================================================
--- /trunk/sources/HeuristicLab.CEDMA.Operators/DoubleRangeVariableInjector.cs	(revision 462)
+++ /trunk/sources/HeuristicLab.CEDMA.Operators/DoubleRangeVariableInjector.cs	(revision 462)
@@ -0,0 +1,71 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using System.Threading;
+using HeuristicLab.CEDMA.DB.Interfaces;
+using System.ServiceModel;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.CEDMA.Operators {
+  public class DoubleRangeVariableInjector: OperatorBase {
+    public override string Description {
+      get { return "TASK."; }
+    }
+
+    public DoubleRangeVariableInjector()
+      : base() {
+      AddVariableInfo(new VariableInfo("VariableInjector", "The operator graph that should hold the generated variable injector", typeof(IOperatorGraph), VariableKind.New));
+      AddVariableInfo(new VariableInfo("VariableName", "Name of the variable that should be injected", typeof(StringData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Min", "Minimal value of the injected variable", typeof(DoubleData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("Max", "Maximal value of the injected variable", typeof(DoubleData), VariableKind.In));
+      AddVariableInfo(new VariableInfo("StepSize", "The difference of the value of the variable from one injector to the next", typeof(DoubleData), VariableKind.In));
+    }
+
+    public override IOperation Apply(IScope scope) {
+      double min = GetVariableValue<DoubleData>("Min", scope, true).Data;
+      double max = GetVariableValue<DoubleData>("Max", scope, true).Data;
+      double stepSize = GetVariableValue<DoubleData>("StepSize", scope, true).Data;
+      string variableName = GetVariableValue<StringData>("VariableName", scope, true).Data;
+
+      int nSubScopes = (int)((max - min) / stepSize);
+      for(int i = 0; i < nSubScopes; i++) {
+        double value = min+i*stepSize;
+        Scope subScope = new Scope(variableName + "<-" + value);
+
+        OperatorGraph opGraph = new OperatorGraph();
+        VariableInjector varInjector = new VariableInjector();
+        varInjector.AddVariable(new Variable(variableName, new DoubleData(value)));
+
+        opGraph.AddOperator(varInjector);
+        opGraph.InitialOperator = varInjector;
+
+        subScope.AddVariable(new Variable(scope.TranslateName("VariableInjector"), opGraph));
+        scope.AddSubScope(subScope);
+      }
+      return null;
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLab.CEDMA.Operators.csproj
===================================================================
--- /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLab.CEDMA.Operators.csproj	(revision 461)
+++ /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLab.CEDMA.Operators.csproj	(revision 462)
@@ -54,4 +54,6 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="SequentialComposer.cs" />
+    <Compile Include="DoubleRangeVariableInjector.cs" />
     <Compile Include="ScopeResultWriter.cs" />
     <Compile Include="HeuristicLabCedmaOperatorsPlugin.cs" />
@@ -75,4 +77,8 @@
       <Name>HeuristicLab.Data</Name>
     </ProjectReference>
+    <ProjectReference Include="..\HeuristicLab.Operators\HeuristicLab.Operators.csproj">
+      <Project>{A9983BA2-B3B2-475E-8E2C-62050B71D1C5}</Project>
+      <Name>HeuristicLab.Operators</Name>
+    </ProjectReference>
     <ProjectReference Include="..\HeuristicLab.PluginInfrastructure\HeuristicLab.PluginInfrastructure.csproj">
       <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
Index: /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLabCedmaOperatorsPlugin.cs
===================================================================
--- /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLabCedmaOperatorsPlugin.cs	(revision 461)
+++ /trunk/sources/HeuristicLab.CEDMA.Operators/HeuristicLabCedmaOperatorsPlugin.cs	(revision 462)
@@ -31,4 +31,5 @@
   [Dependency(Dependency = "HeuristicLab.Core")]
   [Dependency(Dependency = "HeuristicLab.Data")]
+  [Dependency(Dependency = "HeuristicLab.Operators")]
   public class HeuristicLabCedmaOperatorsPlugin : PluginBase {
   }
Index: /trunk/sources/HeuristicLab.CEDMA.Operators/SequentialComposer.cs
===================================================================
--- /trunk/sources/HeuristicLab.CEDMA.Operators/SequentialComposer.cs	(revision 462)
+++ /trunk/sources/HeuristicLab.CEDMA.Operators/SequentialComposer.cs	(revision 462)
@@ -0,0 +1,62 @@
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2008 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
+ *
+ * This file is part of HeuristicLab.
+ *
+ * HeuristicLab is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * HeuristicLab is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using HeuristicLab.Core;
+using HeuristicLab.Data;
+using System.Threading;
+using HeuristicLab.CEDMA.DB.Interfaces;
+using System.ServiceModel;
+using HeuristicLab.Operators;
+
+namespace HeuristicLab.CEDMA.Operators {
+  public class SequentialComposer: OperatorBase {
+    public override string Description {
+      get { return "TASK."; }
+    }
+
+    public SequentialComposer()
+      : base() {
+      AddVariableInfo(new VariableInfo("CombinedOperator", "The combined operator that should hold the resulting sequence of IOperatorGraphs", typeof(CombinedOperator), VariableKind.New));
+      AddVariableInfo(new VariableInfo("OperatorNames", "Names of the operators that should be composed to a sequence", typeof(ItemList<StringData>), VariableKind.In));
+    }
+
+    public override IOperation Apply(IScope scope) {
+      ItemList<StringData> parts = GetVariableValue<ItemList<StringData>>("OperatorNames", scope, true);
+      CombinedOperator combOp = new CombinedOperator();
+      SequentialProcessor seq = new SequentialProcessor();
+
+      foreach(StringData opName in parts) {
+        IOperatorGraph subOpGraph = scope.GetVariableValue<IOperatorGraph>(opName.Data, true);
+        foreach(IOperator op in subOpGraph.Operators)
+          combOp.OperatorGraph.AddOperator(op);
+        seq.AddSubOperator(subOpGraph.InitialOperator);
+      }
+      combOp.OperatorGraph.AddOperator(seq);
+      combOp.OperatorGraph.InitialOperator = seq;
+
+      scope.AddVariable(new Variable(scope.TranslateName("CombinedOperator"), combOp));
+      return null;
+    }
+  }
+}
