/** * Get Spec object * * @return CMbFieldSpec */ function getSpecObject() { CBoolSpec::$_default_no = false; $this->_spec_object = @CMbFieldSpecFact::getSpecWithClassName("CExObject", $this->name, $this->prop); CBoolSpec::$_default_no = true; return $this->_spec_object; }
/** * Turn rercursive plan to flat plan * * @param string[] $props Parameters * * @return array */ function flatify($props) { if (!count($props)) { return array(array()); } // Spec for only first item $spec = null; foreach ($props as $_param => $_prop) { $spec = CMbFieldSpecFact::getSpecWithClassName("stdClass", $_param, $_prop); break; } // Shift this item and recurse plan array_shift($props); $subplan = self::flatify($props); // Complete with own values $plan = array(); foreach ($subplan as $_subparts) { foreach ($spec->regressionSamples() as $_sample) { $parts = $_subparts; $parts[$spec->fieldName] = $_sample; $plan[] = $parts; } } return $plan; }