_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; } }