cellStack = $stack; } /** * Enable/Disable Calculation engine logging * * @param boolean $pValue */ public function setWriteDebugLog($pValue = false) { $this->writeDebugLog = $pValue; } /** * Return whether calculation engine logging is enabled or disabled * * @return boolean */ public function getWriteDebugLog() { return $this->writeDebugLog; } /** * Enable/Disable echoing of debug log information * * @param boolean $pValue */ public function setEchoDebugLog($pValue = false) { $this->echoDebugLog = $pValue; } /** * Return whether echoing of debug log information is enabled or disabled * * @return boolean */ public function getEchoDebugLog() { return $this->echoDebugLog; } /** * Write an entry to the calculation engine debug log */ public function writeDebugLog() { // Only write the debug log if logging is enabled if ($this->writeDebugLog) { $message = implode(func_get_args()); $cellReference = implode(' -> ', $this->cellStack->showStack()); if ($this->echoDebugLog) { echo $cellReference, ($this->cellStack->count() > 0 ? ' => ' : ''), $message, PHP_EOL; } $this->debugLog[] = $cellReference . ($this->cellStack->count() > 0 ? ' => ' : '') . $message; } } /** * Clear the calculation engine debug log */ public function clearLog() { $this->debugLog = array(); } /** * Return the calculation engine debug log * * @return string[] */ public function getLog() { return $this->debugLog; } }