コード例 #1
0
 function _loadMetrics()
 {
     foreach ($this->modules as $k => $module) {
         if (is_array($module->metrics)) {
             $this->metrics = array_merge_recursive($this->metrics, $module->metrics);
         }
     }
     $metricsByEntityMap = array();
     foreach ($this->metrics as $metric => $implementations) {
         foreach ($implementations as $implementation) {
             $m = owa_coreAPI::metricFactory($implementation['class'], $implementation['params']);
             if (!$m->isCalculated()) {
                 $metricsByEntityMap[$m->getEntityName()][$implementation['name']] = $implementation;
             }
         }
     }
     $this->setMap('metricsByEntity', $metricsByEntityMap);
 }
コード例 #2
0
 function getAllRelatedMetrics($entity)
 {
     $related_metrics = array();
     $s = owa_coreAPI::serviceSingleton();
     $all_metrics = $s->getAllMetrics();
     $entity_name = $entity->getName();
     $s = owa_coreAPI::serviceSingleton();
     $metricsByEntity = $s->getMap('metricsByEntity');
     foreach ($all_metrics as $metric_name => $implementations) {
         foreach ($implementations as $implementation) {
             $m = owa_coreAPI::metricFactory($implementation['class'], $implementation['params']);
             if ($m->isCalculated()) {
                 $children = $m->getChildMetrics();
                 $error = false;
                 foreach ($children as $child) {
                     if (!isset($metricsByEntity[$entity_name][$child])) {
                         $error = true;
                     }
                 }
                 if (!$error) {
                     $related_metrics[$implementation['group']][] = array('name' => $metric_name, 'label' => $implementation['label'], 'description' => $implementation['description'], 'group' => $implementation['group']);
                     continue;
                 }
             } else {
                 if ($entity_name === $m->getEntityName()) {
                     $related_metrics[$implementation['group']][] = array('name' => $metric_name, 'label' => $implementation['label'], 'description' => $implementation['description'], 'group' => $implementation['group']);
                     continue;
                 }
             }
         }
     }
     return $related_metrics;
 }