Index: trunk/src/lib/util/executor/executor.cc
===================================================================
--- trunk/src/lib/util/executor/executor.cc	(revision 7197)
+++ trunk/src/lib/util/executor/executor.cc	(revision 7198)
@@ -55,5 +55,4 @@
   for (unsigned int i = 0; i < FUNCTOR_MAX_ARGUMENTS; i++)
   {
-    printf("%d ", i);
     if (this->defaultValue[i] == MT_NULL)
     {
@@ -61,8 +60,5 @@
       break;
     }
-
   }
-  printf("%d\n", this->paramCount);
-
   assert (paramCount <= FUNCTOR_MAX_ARGUMENTS);
 }
@@ -85,60 +81,41 @@
 }
 
-
-
 /**
- * sets default Values of the Commands
- * @param count how many default Values to set.
- * @param ... the default Values in order. They will be cast to the right type
+ * @brief set the default values of the executor
+ * @param value0 the first default value
+ * @param value1 the second default value
+ * @param value2 the third default value
+ * @param value3 the fourth default value
+ * @param value4 the fifth default value
  * @returns itself
- *
- * Be aware, that when you use this Function, you !!MUST!! match the input as
- * count, [EXACTLY THE SAME AS IF YOU WOULD CALL THE FUNCTION UP TO count ARGUMENTS]
  */
-Executor* Executor::defaultValues(unsigned int count, ...)
-{
-  va_list values;
-  va_start(values, count);
-
-  this->defaultValues(count, values);
-}
-
-Executor* Executor::defaultValues(unsigned int count, va_list values)
+Executor* Executor::defaultValues(const MultiType& value0,
+                                  const MultiType& value1,
+                                  const MultiType& value2,
+                                  const MultiType& value3,
+                                  const MultiType& value4)
 {
   if (this == NULL)
     return NULL;
-  if (count == 0)
-    return this;
-  if (count > this->paramCount)
-    count = this->paramCount;
 
+  const MultiType* value[5];
+  value[0] = &value0;
+  value[1] = &value1;
+  value[2] = &value2;
+  value[3] = &value3;
+  value[4] = &value4;
 
-  for (unsigned int i = 0; i < count; i++)
+  for (unsigned int i = 0; i < this->paramCount; i++)
   {
-    switch (this->defaultValue[i].getType())
+    if (*value[i] != MT_NULL)
     {
-      case MT_BOOL:
-        this->defaultValue[i].setInt(va_arg(values, int));
-        break;
-      case MT_CHAR:
-        this->defaultValue[i].setChar((char)va_arg(values, int));
-        break;
-      case MT_STRING:
-        this->defaultValue[i].setString(va_arg(values, char*));
-        break;
-      case MT_INT:
-        this->defaultValue[i].setInt(va_arg(values, int));
-        break;
-        /*      case MT_UINT:
-                this->defaultValue[i].setInt((int)va_arg(values, unsigned int));
-                break;*/
-      case MT_FLOAT:
-        this->defaultValue[i].setFloat(va_arg(values, double));
-        break;
-        /*      case MT_LONG:
-                this->defaultValue[i].setInt((int) va_arg(values, long));
-                break;*/
-      default:
-        break;
+      if (this->defaultValue[i].getType() == value[i]->getType())
+      {
+        this->defaultValue[i] = *value[i];
+      }
+      else
+      {
+        PRINTF(1)("Unable to set this Value, as it is not of type %s\n", MultiType::MultiTypeToString(this->defaultValue[i].getType()));
+      }
     }
   }
Index: trunk/src/lib/util/executor/executor.h
===================================================================
--- trunk/src/lib/util/executor/executor.h	(revision 7197)
+++ trunk/src/lib/util/executor/executor.h	(revision 7198)
@@ -45,6 +45,7 @@
     virtual Executor* clone () const = 0;
 
-    Executor* defaultValues(unsigned int count, va_list values);
-    Executor* defaultValues(unsigned int count, ...);
+    Executor* defaultValues(const MultiType& value0 = MT_NULL, const MultiType& value1 = MT_NULL,
+                            const MultiType& value2 = MT_NULL, const MultiType& value3 = MT_NULL,
+                            const MultiType& value4 = MT_NULL);
 
     /** executes a Command @param object the object to apply this to @param parameters the parameters the command takes */
@@ -59,8 +60,6 @@
 
   protected:
-    Executor(const MultiType& param0 = MT_NULL,
-             const MultiType& param1 = MT_NULL,
-             const MultiType& param2 = MT_NULL,
-             const MultiType& param3 = MT_NULL,
+    Executor(const MultiType& param0 = MT_NULL, const MultiType& param1 = MT_NULL,
+             const MultiType& param2 = MT_NULL, const MultiType& param3 = MT_NULL,
              const MultiType& param4 = MT_NULL);
 
