19 require_once(BASE.
"wcmf/lib/model/mapper/class.RDBMapper.php");
20 require_once(BASE.
"wcmf/lib/persistence/class.PersistenceFacade.php");
21 require_once(BASE.
"wcmf/lib/persistence/converter/class.DataConverter.php");
22 require_once(BASE.
"wcmf/lib/model/class.Node.php");
48 $object->addChild($dependendObject);
56 $objectData[
'_data'] = $objectData[
'_data'];
60 $parentoids = array();
61 while (array_key_exists(
'pid'.$i, $objectData[
'_data']))
63 if ($objectData[
'_data'][(
'pid'.$i)] !== null)
65 $parentoid =
PersistenceFacade::composeOID(array(
'type' => $objectData[
'_data'][(
'ptype'.$i)],
'id' => array($objectData[
'_data'][(
'pid'.$i)])));
66 array_push($parentoids, $parentoid);
70 $object->setProperty(
'parentoids', $parentoids);
73 foreach($objectData[
'_datadef'] as $dataItem)
75 if ($attribs == null || in_array($dataItem[
'name'], $attribs))
77 $value = $objectData[
'_data'][$dataItem[
'name']];
79 $value = $this->_dataConverter->convertStorageToApplication($value, $dataItem[
'db_data_type'], $dataItem[
'name']);
80 $object->setValue($dataItem[
'name'], $value, $dataItem[
'app_data_type']);
81 $valueProperties = array();
82 foreach($dataItem as $key => $value)
83 if ($key !=
'name' && $key !=
'app_data_type')
84 $valueProperties[$key] = $value;
85 $object->setValueProperties($dataItem[
'name'], $valueProperties, $dataItem[
'app_data_type']);
95 $parentoids = array();
96 foreach($objectData[
'_parents'] as $parentDef)
99 array_push($parentoids, $parentoid);
101 $object->setProperty(
'parentoids', $parentoids);
104 foreach($objectData[
'_datadef'] as $dataItem)
106 if ($attribs == null || in_array($dataItem[
'name'], $attribs))
109 if (!$this->
isPkValue($dataItem[
'name'], $dataItem[
'app_data_type']))
111 $value = $this->_dataConverter->convertStorageToApplication($dataItem[
'default'], $dataItem[
'db_data_type'], $dataItem[
'name']);
112 $object->setValue($dataItem[
'name'], $value, $dataItem[
'app_data_type']);
114 $valueProperties = array();
115 foreach($dataItem as $key => $value)
116 if ($key !=
'name' && $key !=
'app_data_type')
117 $valueProperties[$key] = $value;
118 $object->setValueProperties($dataItem[
'name'], $valueProperties, $dataItem[
'app_data_type']);
142 WCMFException::throwEx(
"getObjectDefinition() must be implemented by derived class: ".get_class($this), __FILE__, __LINE__);
RDBMapper maps objects of one type to a relational database schema. It defines a persistence mechanis...
Node is the basic component for building trees (although a Node can have one than more parents)...
throwEx($message, $file='', $line='')
& createObject($oid=null)
appendObject(&$object, &$dependendObject)
isPkValue($name, $dataType)
NodeRDBMapper maps Node objects to a relational database schema where each Node type has its own tabl...
applyDataOnLoad(&$object, $objectData, $attribs)
applyDataOnCreate(&$object, $objectData, $attribs)