Bristol SU Support Package
CompletionCondition.php
Go to the documentation of this file.
1 <?php
2 
4 
11 
15 abstract class CompletionCondition implements Arrayable, Jsonable
16 {
22  private $moduleAlias;
23 
30  public function __construct(string $moduleAlias)
31  {
32  $this->moduleAlias = $moduleAlias;
33  }
34 
40  public function moduleAlias()
41  {
42  return $this->moduleAlias;
43  }
44 
56  public function percentage($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance): int
57  {
58  if ($this->isComplete($settings, $activityInstance, $moduleInstance)) {
59  return 100;
60  }
61  return 0;
62  }
63 
72  abstract public function isComplete($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance): bool;
73 
84  abstract public function options(): Form;
85 
91  abstract public function name(): string;
92 
98  abstract public function description(): string;
99 
105  abstract public function alias(): string;
106 
107  public function toJson($options = 0)
108  {
109  return json_encode($this->toArray(), $options);
110  }
111 
112  public function toArray()
113  {
114  return [
115  'name' => $this->name(),
116  'description' => $this->description(),
117  'options' => (new VFGTransformer())->transformToArray($this->options()),
118  'alias' => $this->alias()
119  ];
120  }
121 }
percentage($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance)
isComplete($settings, ActivityInstance $activityInstance, ModuleInstance $moduleInstance)