ILIAS  trunk Revision v11.0_alpha-2658-ge2404539063
Factory.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\Data\Description;
22 
24 
25 class Factory
26 {
27  public function int(SimpleDocumentMarkdown $description): Description
28  {
29  return new DValue($description, ValueType::INT);
30  }
31 
32  public function float(SimpleDocumentMarkdown $description): Description
33  {
34  return new DValue($description, ValueType::FLOAT);
35  }
36 
37  public function string(SimpleDocumentMarkdown $description): Description
38  {
39  return new DValue($description, ValueType::STRING);
40  }
41 
42  public function datetime(SimpleDocumentMarkdown $description): Description
43  {
44  return new DValue($description, ValueType::DATETIME);
45  }
46 
47  public function bool(SimpleDocumentMarkdown $description): Description
48  {
49  return new DValue($description, ValueType::BOOL);
50  }
51 
52  public function null(SimpleDocumentMarkdown $description): Description
53  {
54  return new DValue($description, ValueType::NULL);
55  }
56 
57  public function list(SimpleDocumentMarkdown $description, Description $value_type): Description
58  {
59  return new DList($description, $value_type);
60  }
61 
62  public function map(SimpleDocumentMarkdown $description, DValue $key_type, Description $value_type): Description
63  {
64  return new DMap($description, $key_type, $value_type);
65  }
66 
70  public function object(SimpleDocumentMarkdown $description, array $fields)
71  {
72  return new DObject($description, ...array_map(
73  fn($k, $v) => new Field($k, $v),
74  array_keys($fields),
75  array_values($fields)
76  ));
77  }
78 }
null(SimpleDocumentMarkdown $description)
Definition: Factory.php:52
list(SimpleDocumentMarkdown $description, Description $value_type)
Definition: Factory.php:57
string(SimpleDocumentMarkdown $description)
Definition: Factory.php:37
This describes some datastructure in terms of standard data structures such as primitives, lists, maps and objects and helpful (hopefully...) human readable texts.
Definition: Description.php:32
float(SimpleDocumentMarkdown $description)
Definition: Factory.php:32
map(SimpleDocumentMarkdown $description, DValue $key_type, Description $value_type)
Definition: Factory.php:62
int(SimpleDocumentMarkdown $description)
Definition: Factory.php:27
object(SimpleDocumentMarkdown $description, array $fields)
Definition: Factory.php:70
datetime(SimpleDocumentMarkdown $description)
Definition: Factory.php:42
bool(SimpleDocumentMarkdown $description)
Definition: Factory.php:47