Example #1
0
 /**
  * @param array $taskListEntryData
  * @return TaskListEntry
  */
 public static function fromArray(array $taskListEntryData)
 {
     Assertion::keyExists($taskListEntryData, 'taskListPosition');
     Assertion::keyExists($taskListEntryData, 'taskData');
     Assertion::keyExists($taskListEntryData, 'taskClass');
     Assertion::keyExists($taskListEntryData, 'status');
     Assertion::keyExists($taskListEntryData, 'startedOn');
     Assertion::keyExists($taskListEntryData, 'finishedOn');
     Assertion::keyExists($taskListEntryData, 'log');
     Assertion::inArray($taskListEntryData['status'], [self::STATUS_NOT_STARTED, self::STATUS_IN_PROGRESS, self::STATUS_DONE, self::STATUS_FAILED]);
     $taskListPosition = TaskListPosition::fromString($taskListEntryData['taskListPosition']);
     $taskClass = $taskListEntryData['taskClass'];
     $task = $taskClass::reconstituteFromArray($taskListEntryData['taskData']);
     $startedOn = is_null($taskListEntryData['startedOn']) ? null : new \DateTime($taskListEntryData['startedOn']);
     $finishedOn = is_null($taskListEntryData['finishedOn']) ? null : new \DateTime($taskListEntryData['finishedOn']);
     $instance = new self($taskListPosition, $task);
     $instance->status = $taskListEntryData['status'];
     $instance->startedOn = $startedOn;
     $instance->finishedOn = $finishedOn;
     $instance->setLogFromArray($taskListEntryData['log']);
     return $instance;
 }