public function GetTaskData(Task $task) { $data = new \phalanx\base\Dictionary(); $output_list = $task::OutputList(); $output_list[] = 'input'; foreach ($output_list as $key) { $class = new \ReflectionClass(get_class($task)); if ($class->HasProperty($key) && $class->GetProperty($key)->IsPublic()) { $data->Set($key, $task->{$key}); } else { if ($class->HasMethod($key) && $class->GetMethod($key)->IsPublic()) { $data->Set($key, $task->{$key}()); } } } return $data; }