Path: blob/master/src/applications/fact/chart/PhabricatorHigherOrderChartFunction.php
12256 views
<?php12abstract class PhabricatorHigherOrderChartFunction3extends PhabricatorChartFunction {45public function getDomain() {6$domains = array();7foreach ($this->getFunctionArguments() as $function) {8$domains[] = $function->getDomain();9}1011return PhabricatorChartInterval::newFromIntervalList($domains);12}1314public function newInputValues(PhabricatorChartDataQuery $query) {15$map = array();16foreach ($this->getFunctionArguments() as $function) {17$xv = $function->newInputValues($query);18if ($xv !== null) {19foreach ($xv as $x) {20$map[$x] = true;21}22}23}2425if (!$map) {26return null;27}2829ksort($map);3031return array_keys($map);32}3334public function getDataRefs(array $xv) {35$refs = array();3637foreach ($this->getFunctionArguments() as $function) {38$function_refs = $function->getDataRefs($xv);3940$function_refs = array_select_keys($function_refs, $xv);41if (!$function_refs) {42continue;43}4445foreach ($function_refs as $x => $ref_list) {46if (!isset($refs[$x])) {47$refs[$x] = array();48}49foreach ($ref_list as $ref) {50$refs[$x][] = $ref;51}52}53}5455return $refs;56}5758public function loadRefs(array $refs) {59$results = array();6061foreach ($this->getFunctionArguments() as $function) {62$results += $function->loadRefs($refs);63}6465return $results;66}6768}697071