| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- /* TODO: ACL::getChildRefFullList($namespace); returns array with:
- // [0] => Array:
- // [namespace] => default_db__x3A__BI_audit_ENERGA_PRACOWNICY_adresy:BI_audit_ENERGA_PRACOWNICY_adresy // TODO: childName
- // [A_STATUS] => NORMAL
- // [ID] => 27
- // [SOURCE] => backRef
- */
- class Type_RefConfig {
- var $_data = [];
- static function build($refRow = []) {
- if (!$refRow) throw new Exception("Missing data in build Type RefConfig");
- // if (!$refRow['ID']) throw new Exception("Missing ID in Type RefConfig build"); // TODO: allow missing ID?
- $refConfig = new Type_RefConfig();
- $refConfig->id = (int)$refRow['ID'];
- if (!empty($refRow['ROOT_OBJECT_NS'])) $refConfig->objectNamespace = $refRow['ROOT_OBJECT_NS']; // namespace
- if (!empty($refRow['CHILD_NAME'])) $refConfig->childName = $refRow['CHILD_NAME']; // typeName
- if (!empty($refRow['CHILD_NS'])) $refConfig->childNamespace = $refRow['CHILD_NS']; // namespace
- $refConfig->source = $refRow['SOURCE'];
- $refConfig->status = $refRow['A_STATUS'];
- $refConfig->version = $refRow['VERSION'];
- $refConfig->tableName = self::generateTableName($refConfig->id, $refConfig->source);
- return $refConfig;
- }
- static function generateTableName($id, $source) { // @return string | null
- switch ($source) {
- case 'table': return "CRM__#REF_TABLE__{$id}";
- case 'view': return "CRM__#REF_TABLE__{$id}_VIEW";
- case 'backRef': return "CRM__#REF_TABLE__{$id}_VIEW";
- default: throw new Exception("Not Implemented ref source '{$source}'");
- }
- }
- function __isset($name) {
- return (array_key_exists($name, $this->_data));
- }
- function __get($name) {
- if (array_key_exists($name, $this->_data)) {
- return $this->_data[$name];
- }
- return null;
- }
- function __set($name, $value) {
- $this->_data[$name] = $value;
- }
- function toArray() {
- return $this->_data;
- }
- function __toString() {
- return str_replace('"', '',
- str_replace([ '{', '}', '":', ',"' ], [ '{ ', ' }', ': ', ', ' ], json_encode($this->_data))
- );
- }
- }
|