Index: branches/new_class_id/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9727)
+++ branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9728)
@@ -24,12 +24,6 @@
 
 #include "executor.h"
-
-template<typename type> MT_Type ExecutorParamType() { return MT_EXT1; };
-template<> MT_Type ExecutorParamType<bool>();
-template<> MT_Type ExecutorParamType<int>();
-template<> MT_Type ExecutorParamType<unsigned int>();
-template<> MT_Type ExecutorParamType<float>();
-template<> MT_Type ExecutorParamType<char>();
-template<> MT_Type ExecutorParamType<const std::string&>();
+#include "substring.h"
+
 
 template<typename type> type fromString(const std::string& input, type defaultValue) { return defaultValue; };
@@ -70,14 +64,25 @@
 
 #ifdef EXECUTOR_FUNCTIONAL_USE_CONST
+ #ifdef __EXECUTOR_FUNCTIONAL_CONST_INCLUDED
+  #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+ #else
+  #define __EXECUTOR_FUNCTIONAL_CONST_INCLUDED
+ #endif
  #undef __EXECUTOR_FUNCTIONAL_CONST
  #define __EXECUTOR_FUNCTIONAL_CONST const
  #undef __EXECUTOR_FUNCTIONAL_NAME
  #define __EXECUTOR_FUNCTIONAL_NAME(ParamCount) Executor##ParamCount##Params_const
-#endif
-
-#ifdef EXECUTOR_FUNCTIONAL_USE_STATIC
+//#endif /* EXECUTOR_FUNCTIONAL_USE_CONST */
+
+#elif defined EXECUTOR_FUNCTIONAL_USE_STATIC
  #ifdef EXECUTOR_FUNCTIONAL_USE_CONST
   #error you obviously do not know what you are doing !! ask the bensch
- #endif /* EXECUTOR_FUNCTIONAL_USE_CONST */
+ #endif
+
+  #ifdef __EXECUTOR_FUNCTIONAL_STATIC_INCLUDED
+   #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+  #else
+   #define __EXECUTOR_FUNCTIONAL_STATIC_INCLUDED
+  #endif
 
 #undef __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC
@@ -88,6 +93,14 @@
  #define __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER    *functionPointer
 
-#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
-
+//#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
+#else
+ #ifdef __EXECUTOR_FUNCTIONAL_PLAIN_INCLUDED
+  #define __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
+ #else
+  #define __EXECUTOR_FUNCTIONAL_PLAIN_INCLUDED
+ #endif
+#endif
+
+#ifndef __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
 ///////////
 //// 0 ////
@@ -122,10 +135,4 @@
   };
 
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)();
-  }
-
   /**
    * @brief copies the Executor
@@ -161,13 +168,4 @@
     this->functionPointer = functionPointer;
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0)? mt[0] : this->defaultValue[0]) );
-  }
-
 
   /**
@@ -225,13 +223,4 @@
       (sub.size() > 1) ? fromString<type1>(sub[1], getDefault<type1>(this->defaultValue, 1)) : (fromMulti<type1>(this->defaultValue[1])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]) );
-  }
 
   /**
@@ -280,14 +269,4 @@
       (sub.size() > 2) ? fromString<type2>(sub[2], getDefault<type2>(this->defaultValue, 2)) : (fromMulti<type2>(this->defaultValue[2])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]) );
-  }
 
   /**
@@ -338,15 +317,4 @@
       (sub.size() > 3) ? fromString<type3>(sub[3], getDefault<type3>(this->defaultValue, 3)) : (fromMulti<type3>(this->defaultValue[3])));
   };
-
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]) );
-  }
 
   /**
@@ -399,16 +367,4 @@
   };
 
-  /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, int& count, void* values) const
-  {
-    const MultiType* mt = (const MultiType*)values;
-    return (__EXECUTOR_FUNCTIONAL_FUNCTION_EXEC)(
-             fromMulti<type0>((count > 0) ? mt[0] : this->defaultValue[0]),
-             fromMulti<type1>((count > 1) ? mt[1] : this->defaultValue[1]),
-             fromMulti<type2>((count > 2) ? mt[2] : this->defaultValue[2]),
-             fromMulti<type3>((count > 3) ? mt[3] : this->defaultValue[3]),
-             fromMulti<type4>((count > 4) ? mt[4] : this->defaultValue[4]) );
-  }
-
   /**
    * @brief copies the Executor
@@ -513,2 +469,6 @@
  #undef EXECUTOR_FUNCTIONAL_USE_STATIC
 #endif
+
+
+#endif /* __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS */
+#undef __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
