Index: branches/new_class_id/src/lib/util/executor/executor.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor.h	(revision 9734)
+++ branches/new_class_id/src/lib/util/executor/executor.h	(revision 9735)
@@ -39,12 +39,12 @@
  *  Functions with many types (@see functor_list.h)
  */
-template <typename CallType> class Executor
+template <typename CallType, class BaseClass = BaseObject> class Executor
 {
 public:
   //! an enumerator for the definition of the Type.
   typedef enum {
-    FunctionDefault,
-    FunctionStatic,
-    FunctionConst,
+    FunctionDefault,     //!< The function is neither Static nor Constant
+    FunctionStatic,      //!< The Function is Static and pointing to either a Static Member or a C-style function.
+    FunctionConst,       //!< The Function is Constant and pointing to a Member that does not change the Object.
   } FunctionType;
 
@@ -67,5 +67,5 @@
 
   /** executes a Command. @param objec the Object, @param count how many values, @param values the Values */
-  virtual void operator()(BaseObject* object, CallType& values) const = 0;
+  virtual void operator()(BaseClass* object, CallType& values) const = 0;
 
   /**
@@ -103,4 +103,5 @@
   }
 
+  /** @returns the Clone as a new Copy of the Executor. */
   virtual Executor<CallType>* clone () const = 0;
 
@@ -193,5 +194,5 @@
 protected:
   const bool                  bRetVal;          //!< True if the Executor has a return Value.
-  unsigned int                paramCount;       //!< the count of parameters.
+  const unsigned int          paramCount;       //!< the count of parameters.
   MultiType                   defaultValue[7];  //!< Default Values.
 
Index: branches/new_class_id/src/lib/util/executor/executor_functional.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9734)
+++ branches/new_class_id/src/lib/util/executor/executor_functional.h	(revision 9735)
@@ -61,4 +61,8 @@
 {
 public:
+  /** @brief Executes the Evaluator
+   * @param CallValue the Value that should be converted
+   * @param defaults the default Values.
+   */
   ToType operator()(FromType& CallValue, const MultiType* const defaults)
   {
@@ -79,4 +83,5 @@
 //! The Function-Pointer, and how to save it internally.
 #define __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER   T::*functionPointer
+#define __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE       Executor<CallType, BaseClass>::FunctionDefault
 
 #ifdef EXECUTOR_FUNCTIONAL_USE_CONST            //! USING CONST FUNCTIONALS
@@ -88,4 +93,6 @@
  #undef __EXECUTOR_FUNCTIONAL_CONST
  #define __EXECUTOR_FUNCTIONAL_CONST const
+ #undef __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE
+ #define __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE       Executor<CallType, BaseClass>::FunctionConst
  #undef __EXECUTOR_FUNCTIONAL_NAME
  #define __EXECUTOR_FUNCTIONAL_NAME(ParamCount) Executor##ParamCount##Params_const
@@ -109,4 +116,6 @@
  #undef __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER
  #define __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER    *functionPointer
+ #undef __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE
+ #define __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE       Executor<CallType, BaseClass>::FunctionStatic
 
 //#endif /* EXECUTOR_FUNCTIONAL_USE_STATIC */
@@ -121,10 +130,13 @@
 #ifndef __EXECUTOR_FUNCTIONAL_NOT_INCLUDE_THIS
 
+
+
+
 ///////////
 //// 0 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions without any parameters.
-template<class T, typename CallType, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(0) :public Executor<CallType>
+template<class T, typename CallType, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(0) :public Executor<CallType, BaseClass>
 {
 private:
@@ -138,5 +150,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(0) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)() __EXECUTOR_FUNCTIONAL_CONST )
-      : Executor<CallType>(false)
+      : Executor<CallType, BaseClass>(false, __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -157,5 +169,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return new __EXECUTOR_FUNCTIONAL_NAME(0)<T, CallType>(this->functionPointer);
@@ -165,10 +177,12 @@
 
 
+
+
 ///////////
 //// 1 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions with one parameter.
-template<class T, typename CallType, typename type0, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(1) : public Executor<CallType>
+template<class T, typename CallType, typename type0, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(1) : public Executor<CallType, BaseClass>
 {
 private:
@@ -182,5 +196,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(1) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType>(false, ExecutorParamType<type0>())
+      : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -202,5 +216,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return  new __EXECUTOR_FUNCTIONAL_NAME(1)<T, CallType, type0>(this->functionPointer);
@@ -208,10 +222,14 @@
 };
 
+
+
+
+
 ///////////
 //// 2 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions with two parameters.
-template<class T, typename CallType, typename type0, typename type1, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(2) : public Executor<CallType>
+template<class T, typename CallType, typename type0, typename type1, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(2) : public Executor<CallType, BaseClass>
 {
 private:
@@ -225,5 +243,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(2) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>())
+  : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -246,5 +264,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return new __EXECUTOR_FUNCTIONAL_NAME(2)<T, CallType, type0, type1>(this->functionPointer);
@@ -253,10 +271,13 @@
 
 
+
+
+
 ///////////
 //// 3 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions with three parameters.
-template<class T, typename CallType, typename type0, typename type1, typename type2, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(3) : public Executor<CallType>
+template<class T, typename CallType, typename type0, typename type1, typename type2, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(3) : public Executor<CallType, BaseClass>
 {
 private:
@@ -270,5 +291,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(3) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>())
+  : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -292,5 +313,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return new __EXECUTOR_FUNCTIONAL_NAME(3)<T, CallType, type0, type1, type2>(this->functionPointer);
@@ -300,10 +321,12 @@
 
 
+
+
 ///////////
 //// 4 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions with four parameters.
-template<class T, typename CallType, typename type0, typename type1, typename type2, typename type3, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(4) : public Executor<CallType>
+template<class T, typename CallType, typename type0, typename type1, typename type2, typename type3, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(4) : public Executor<CallType, BaseClass>
 {
 private:
@@ -317,5 +340,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(4) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>())
+  : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -340,5 +363,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return new __EXECUTOR_FUNCTIONAL_NAME(4)<T, CallType, type0, type1, type2, type3>(this->functionPointer);
@@ -348,10 +371,13 @@
 
 
+
+
+
 ///////////
 //// 5 ////
 ///////////
 //! @brief ExecutorClass, that can execute Functions with five parameters.
-template<class T, typename CallType, typename type0, typename type1, typename type2, typename type3, typename type4, template<typename, typename, int> class Evaluater = ExecutorEvaluater>
-class __EXECUTOR_FUNCTIONAL_NAME(5) : public Executor<CallType>
+template<class T, typename CallType, typename type0, typename type1, typename type2, typename type3, typename type4, template<typename, typename, int> class Evaluater = ExecutorEvaluater, class BaseClass = BaseObject>
+class __EXECUTOR_FUNCTIONAL_NAME(5) : public Executor<CallType, BaseClass>
 {
 private:
@@ -365,5 +391,5 @@
    */
   __EXECUTOR_FUNCTIONAL_NAME(5) (void (__EXECUTOR_FUNCTIONAL_FUNCTION_POINTER)(type0, type1, type2, type3, type4) __EXECUTOR_FUNCTIONAL_CONST)
-      : Executor<CallType>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>())
+  : Executor<CallType, BaseClass>(false, ExecutorParamType<type0>(), ExecutorParamType<type1>(), ExecutorParamType<type2>(), ExecutorParamType<type3>(), ExecutorParamType<type4>(), __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE)
   {
     this->functionPointer = functionPointer;
@@ -389,5 +415,5 @@
    * @returns a new Executor that's a copy of this one.
    */
-  virtual Executor<CallType>* clone() const
+  virtual Executor<CallType, BaseClass>* clone() const
   {
     return new __EXECUTOR_FUNCTIONAL_NAME(5)<T, CallType, type0, type1, type2, type3, type4>(this->functionPointer);
@@ -489,4 +515,5 @@
 #undef __EXECUTOR_FUNCTIONAL_FUNCTION_EXEC
 #undef __EXECUTOR_FUNCTIONAL_FUNCTION_POINTER
+#undef __EXECUTOR_FUNCTIONAL_FUNCTIONTYPE
 
 #ifdef EXECUTOR_FUNCTIONAL_USE_CONST
Index: branches/new_class_id/src/lib/util/executor/executor_xml.h
===================================================================
--- branches/new_class_id/src/lib/util/executor/executor_xml.h	(revision 9734)
+++ branches/new_class_id/src/lib/util/executor/executor_xml.h	(revision 9735)
@@ -19,5 +19,5 @@
  * What must be defined is a XML-root to search the ParameterName under an  a Function to call.
  */
-template<class T> class ExecutorXML : public Executor<const TiXmlElement*>
+template<class T, class BaseClass = BaseObject> class ExecutorXML : public Executor<const TiXmlElement*>
 {
 public:
