示例#1
0
 /**
  * Maps attribute model informations to a DOMDocument.
  *
  * @param Opus_Model_Abstract $model      Model informations for attribute mapping.
  * @param DOMDocument         $dom        General DOM document.
  * @param DOMNode             $rootNode   Node where to add created structure.
  * @param boolean             $unTunneled Should only current (true) or all (false, default) fields shown.
  * @return void
  */
 protected function _mapAttributes(Opus_Model_Abstract $model, DOMDocument $dom, DOMNode $rootNode, $unTunneled = false)
 {
     if (true === $unTunneled and $model instanceof Opus_Model_Dependent_Link_Abstract) {
         $fields = $model->describeUntunneled();
     } else {
         if (true === $unTunneled and $model instanceof Opus_Model_Dependent_Abstract) {
             return;
             // short-circuit
         } else {
             $fields = $model->describe();
         }
     }
     $excludeFields = $this->_config->_excludeFields;
     if (count($excludeFields) > 0) {
         $fields_diff = array_diff($fields, $excludeFields);
     } else {
         $fields_diff = $fields;
     }
     foreach ($fields_diff as $fieldname) {
         $field = $model->getField($fieldname);
         $this->_mapField($field, $dom, $rootNode);
     }
 }