ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilADTGroupDBBridge.php
Go to the documentation of this file.
1<?php
2
3require_once "Services/ADT/classes/Bridges/class.ilADTDBBridge.php";
4
6{
7 protected $elements = []; // [array]
8
9 protected function isValidADT(ilADT $a_adt)
10 {
11 return ($a_adt instanceof ilADTGroup);
12 }
13
14
15 // elements
16
17 protected function prepareElements()
18 {
19 if (sizeof($this->elements)) {
20 return;
21 }
22
23 $this->elements = array();
25
26 // convert ADTs to DB bridges
27
28 foreach ($this->getADT()->getElements() as $name => $element) {
29 $this->elements[$name] = $factory->getDBBridgeForInstance($element);
30 $this->elements[$name]->setElementId($name);
31 $this->elements[$name]->setTable($this->getTable());
32 $this->elements[$name]->setPrimary($this->getPrimary());
33 }
34 }
35
36 public function getElements()
37 {
38 $this->prepareElements();
39 return $this->elements;
40 }
41
42 public function getElement($a_element_id)
43 {
44 if (array_key_exists($a_element_id, $this->getElements())) {
45 return $this->elements[$a_element_id];
46 }
47 }
48
49
50 // properties
51
52 public function setTable($a_table)
53 {
54 parent::setTable($a_table);
55
56 if (sizeof($this->elements)) {
57 foreach (array_keys($this->getADT()->getElements()) as $name) {
58 $this->elements[$name]->setTable($this->getTable());
59 }
60 }
61 }
62
63 public function setPrimary(array $a_value)
64 {
65 parent::setPrimary($a_value);
66
67 if (sizeof($this->elements)) {
68 foreach (array_keys($this->getADT()->getElements()) as $name) {
69 $this->elements[$name]->setPrimary($this->getPrimary());
70 }
71 }
72 }
73
74
75 // CRUD
76
77 public function readRecord(array $a_row)
78 {
79 foreach ($this->getElements() as $element) {
80 $element->readRecord($a_row);
81 }
82 }
83
84 public function prepareInsert(array &$a_fields)
85 {
86 foreach ($this->getElements() as $element) {
87 $element->prepareInsert($a_fields);
88 }
89 }
90
91 public function afterInsert()
92 {
93 foreach ($this->getElements() as $element) {
94 $element->afterInsert();
95 }
96 }
97
98 public function afterUpdate()
99 {
100 foreach ($this->getElements() as $element) {
101 $element->afterUpdate();
102 }
103 }
104
105 public function afterDelete()
106 {
107 foreach ($this->getElements() as $element) {
108 $element->afterDelete();
109 }
110 }
111}
An exception for terminatinating execution or to throw for unit testing.
ADT DB bridge base class.
getPrimary()
Get primary fields.
getTable()
Get table name.
static getInstance()
Get singleton.
afterDelete()
After delete hook to enable sub-tables.
afterUpdate()
After update hook to enable sub-tables.
setTable($a_table)
Set table name.
isValidADT(ilADT $a_adt)
Check if given ADT is valid.
setPrimary(array $a_value)
Set primary fields (in MDB2 format)
prepareInsert(array &$a_fields)
Prepare ADT values for insert.
readRecord(array $a_row)
Import DB values to ADT.
afterInsert()
After insert hook to enable sub-tables.
ADT base class.
Definition: class.ilADT.php:12
$factory
Definition: metadata.php:58
if($format !==null) $name
Definition: metadata.php:230