/** * @param string $job_class * @param array $fields * @param array $params * @return AbstractAsyncJobObject * @throws \InvalidArgumentException */ protected function createAsyncJob($job_class, array $fields = array(), array $params = array()) { $object = new $job_class(null, $this->assureId(), $this->getApi()); if (!$object instanceof AbstractAsyncJobObject) { throw new \InvalidArgumentException("Class {$job_class} is not of type " . AbstractAsyncJobObject::className()); } return $object->setData($fields)->create($params); }