timestamp = $response->timestamp; $summary->globalStacktrace = $response->globalStacktrace; $summary->results = self::decodeJsonResultArray($response->results); return $summary; } /** * @param array $jsonArray decoded json array of results array * @return array of DttResult */ private static function decodeJsonResultArray($jsonArray): array { $ret = array(); foreach ($jsonArray as $entry) { $value = new DttResult(); $value->name = $entry->name; $value->state = $entry->state; $value->failureType = $entry->failureType; $value->failureReason = $entry->failureReason; $value->stacktrace = $entry->stacktrace; $value->columnNumber = $entry->columnNumber; $value->lineNumber = $entry->lineNumber; $value->position = $entry->position; $ret[] = $value; } return $ret; } /** * @param int $state state ordinal number * @return int count of occurences provided state has */ public function stateOccurenceCount(int $state): int { $num = 0; foreach($this->results as $r) { if ($r->state == $state) { $num++; } } return $num; } public function compilationErrorCount(): int { return $this->stateOccurenceCount(3); } public function failedCount(): int { return $this->stateOccurenceCount(2); } public function resultCount(): int { return count($this->results); } public function successfulCount(): int { return $this->stateOccurenceCount(1); } public function unknownCount(): int { return $this->stateOccurenceCount(0); } }