metadata = $metadata; } /** * @return string[] */ public function getPreparableJobNameList(): array { $list = []; $items = $this->metadata->get(['app', 'scheduledJobs']) ?? []; foreach ($items as $name => $item) { $isPreparable = (bool) ($item['preparatorClassName'] ?? null); if ($isPreparable) { $list[] = $name; } } return $list; } public function isJobSystem(string $name): bool { return (bool) $this->metadata->get(['app', 'scheduledJobs', $name, 'isSystem']); } public function isJobPreparable(string $name): bool { return (bool) $this->metadata->get(['app', 'scheduledJobs', $name, 'preparatorClassName']); } public function getPreparatorClassName(string $name): ?string { return $this->metadata->get(['app', 'scheduledJobs', $name, 'preparatorClassName']); } public function getJobClassName(string $name): ?string { return $this->metadata->get(['app', 'scheduledJobs', $name, 'jobClassName']); } /** * @return string[] */ public function getScheduledJobNameList(): array { /** @var array $items */ $items = $this->metadata->get(['app', 'scheduledJobs']) ?? []; return array_keys($items); } /** * @return string[] */ public function getNonSystemScheduledJobNameList(): array { return array_filter( $this->getScheduledJobNameList(), function (string $item) { $isSystem = (bool) $this->metadata->get(['app', 'scheduledJobs', $item, 'isSystem']); return !$isSystem; } ); } }