public ExecutionComposite(ModelTask modelTask, IBTExecutor executor, ExecutionTask parent)
     : base(modelTask, executor, parent)
 {
     if (!(typeof(ModelComposite).IsAssignableFrom(modelTask.GetType()))) {
         throw new ArgumentException("The ModelTask " + modelTask.GetType() + " must subclass "
         + typeof(ModelComposite) + " but it inherits from "
         + modelTask.GetType().BaseType);
     }
 }
 public ExecutionSelector(ModelTask modelTask, IBTExecutor executor, ExecutionTask parent)
     : base(modelTask, executor, parent)
 {
     if (!(modelTask is ModelSelector)) {
         throw new ArgumentException("The ModelTask must subclass "
         + typeof(ModelSelector) + " but it inherits from "
         + modelTask.GetType().BaseType);
     }
 }