/**
  * Format discovery rule.
  *
  * @param array $discoveryRule
  *
  * @return array
  */
 protected function formatDiscoveryRule(array $discoveryRule)
 {
     $discoveryRule = $this->renameItemFields($discoveryRule);
     if (!empty($discoveryRule['item_prototypes'])) {
         foreach ($discoveryRule['item_prototypes'] as &$prototype) {
             $prototype = $this->renameItemFields($prototype);
             CArrayHelper::convertFieldToArray($prototype, 'applications');
         }
         unset($prototype);
     } else {
         $discoveryRule['item_prototypes'] = array();
     }
     if (!empty($discoveryRule['trigger_prototypes'])) {
         foreach ($discoveryRule['trigger_prototypes'] as &$trigger) {
             $trigger = $this->renameTriggerFields($trigger);
         }
         unset($trigger);
     } else {
         $discoveryRule['trigger_prototypes'] = array();
     }
     if (!empty($discoveryRule['graph_prototypes'])) {
         foreach ($discoveryRule['graph_prototypes'] as &$graph) {
             $graph = $this->renameGraphFields($graph);
         }
         unset($graph);
     } else {
         $discoveryRule['graph_prototypes'] = array();
     }
     if (!empty($discoveryRule['host_prototypes'])) {
         foreach ($discoveryRule['host_prototypes'] as &$hostPrototype) {
             CArrayHelper::convertFieldToArray($hostPrototype, 'group_prototypes');
             CArrayHelper::convertFieldToArray($hostPrototype, 'templates');
         }
         unset($hostPrototype);
     } else {
         $discoveryRule['host_prototypes'] = array();
     }
     return $discoveryRule;
 }
 /**
  * Format discovery rule.
  *
  * @param array $discoveryRule
  *
  * @return array
  */
 protected function formatDiscoveryRule(array $discoveryRule)
 {
     $discoveryRule = $this->renameItemFields($discoveryRule);
     if (!empty($discoveryRule['item_prototypes'])) {
         foreach ($discoveryRule['item_prototypes'] as &$prototype) {
             $prototype = $this->renameItemFields($prototype);
             CArrayHelper::convertFieldToArray($prototype, 'applications');
         }
         unset($prototype);
     } else {
         $discoveryRule['item_prototypes'] = array();
     }
     if (!empty($discoveryRule['trigger_prototypes'])) {
         foreach ($discoveryRule['trigger_prototypes'] as &$trigger) {
             $trigger['expression'] = $this->triggerExpressionConverter->convert($trigger['expression']);
             $trigger = $this->renameTriggerFields($trigger);
         }
         unset($trigger);
     } else {
         $discoveryRule['trigger_prototypes'] = array();
     }
     if (!empty($discoveryRule['graph_prototypes'])) {
         foreach ($discoveryRule['graph_prototypes'] as &$graph) {
             $graph = $this->renameGraphFields($graph);
         }
         unset($graph);
     } else {
         $discoveryRule['graph_prototypes'] = array();
     }
     if (!empty($discoveryRule['host_prototypes'])) {
         foreach ($discoveryRule['host_prototypes'] as &$hostPrototype) {
             CArrayHelper::convertFieldToArray($hostPrototype, 'group_prototypes');
             CArrayHelper::convertFieldToArray($hostPrototype, 'templates');
         }
         unset($hostPrototype);
     } else {
         $discoveryRule['host_prototypes'] = array();
     }
     if (!empty($discoveryRule['filter'])) {
         // array filter structure
         if (is_array($discoveryRule['filter'])) {
             CArrayHelper::convertFieldToArray($discoveryRule['filter'], 'conditions');
         } else {
             list($filterMacro, $filterValue) = explode(':', $discoveryRule['filter']);
             if ($filterMacro) {
                 $discoveryRule['filter'] = array('evaltype' => CONDITION_EVAL_TYPE_AND_OR, 'formula' => '', 'conditions' => array(array('macro' => $filterMacro, 'value' => $filterValue, 'operator' => CONDITION_OPERATOR_REGEXP)));
             } else {
                 unset($discoveryRule['filter']);
             }
         }
     }
     return $discoveryRule;
 }