ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ScoreSettings.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
24use ILIAS\Test\Scoring\Settings\Settings as SettingsScoring;
26
27class ScoreSettings implements Exportable
28{
29 public function __construct(
30 protected int $id,
31 protected SettingsScoring $settings_scoring,
32 protected SettingsResultSummary $settings_result_summary,
33 protected SettingsResultDetails $settings_result_details
34 ) {
35 $this->settings_result_summary = $settings_result_summary
36 ->withShowPassDetails($settings_result_details->getShowPassDetails());
37 }
38
39 public function getId(): int
40 {
41 return $this->id;
42 }
43
44 public function withId(int $id): self
45 {
46 $clone = clone $this;
47 $clone->id = $id;
48 return $clone;
49 }
50
51 public function getScoringSettings(): SettingsScoring
52 {
53 return $this->settings_scoring;
54 }
55
56 public function withScoringSettings(SettingsScoring $settings): self
57 {
58 $clone = clone $this;
59 $clone->settings_scoring = $settings;
60 return $clone;
61 }
62
64 {
65 return $this->settings_result_summary;
66 }
67
69 {
70 $clone = clone $this;
71 $clone->settings_result_summary = $settings;
72 return $clone;
73 }
74
76 {
77 return $this->settings_result_details;
78 }
79
81 {
82 $clone = clone $this;
83 $clone->settings_result_details = $settings;
84 return $clone;
85 }
86
87 public function getArrayForLog(AdditionalInformationGenerator $additional_info): array
88 {
89 return $this->settings_scoring->toLog($additional_info)
90 + $this->settings_result_summary->toLog($additional_info)
91 + $this->settings_result_details->toLog($additional_info);
92 }
93
94 public function toExport(): array
95 {
96 return [
97 'settings_scoring' => $this->settings_scoring->toExport(),
98 'settings_result_summary' => $this->settings_result_summary->toExport(),
99 'settings_result_details' => $this->settings_result_details->toExport()
100 ];
101 }
102
103 public static function fromExport(array $data): static
104 {
105 return new self(
106 $data['id'] ?? -1,
107 SettingsScoring::fromExport($data['settings_scoring']),
108 SettingsResultSummary::fromExport($data['settings_result_summary']),
109 SettingsResultDetails::fromExport($data['settings_result_details'])
110 );
111 }
112}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
$settings
Definition: index.php:44
getArrayForLog(AdditionalInformationGenerator $additional_info)
static fromExport(array $data)
Creates an instance of the object from an array.
toExport()
Transform the object into a simple, associative array.
withResultDetailsSettings(SettingsResultDetails $settings)
withResultSummarySettings(SettingsResultSummary $settings)
__construct(protected int $id, protected SettingsScoring $settings_scoring, protected SettingsResultSummary $settings_result_summary, protected SettingsResultDetails $settings_result_details)
static fromExport(array $data)
Creates an instance of the object from an array.
static fromExport(array $data)
Creates an instance of the object from an array.
This interface allows an object to define its own transformation into a language-neutral,...
Definition: Exportable.php:42
$data
Definition: storeScorm.php:45