diff options
author | arron.woods@gmail.com <arron.woods@gmail.com@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2012-12-04 13:57:01 +0000 |
---|---|---|
committer | arron.woods@gmail.com <arron.woods@gmail.com@deae1e92-32f9-c189-e222-5b9b5081a27a> | 2012-12-04 13:57:01 +0000 |
commit | 32df2c87940c19a63dd4205443e44f39abf57ac5 (patch) | |
tree | 2d373d215567c72da0a86180679e3fa144dbe072 /library/SSRS/Object | |
parent | d293a6b0a7363dbaaf9acfe95a889a89573f22ed (diff) | |
download | php-ssrs-32df2c87940c19a63dd4205443e44f39abf57ac5.zip php-ssrs-32df2c87940c19a63dd4205443e44f39abf57ac5.tar.gz php-ssrs-32df2c87940c19a63dd4205443e44f39abf57ac5.tar.bz2 |
Data tidied on set rather than get
Diffstat (limited to 'library/SSRS/Object')
-rwxr-xr-x | library/SSRS/Object/ExecutionInfo.php | 58 | ||||
-rwxr-xr-x | library/SSRS/Object/ReportParameter.php | 47 |
2 files changed, 69 insertions, 36 deletions
diff --git a/library/SSRS/Object/ExecutionInfo.php b/library/SSRS/Object/ExecutionInfo.php index 2d3d894..abb342a 100755 --- a/library/SSRS/Object/ExecutionInfo.php +++ b/library/SSRS/Object/ExecutionInfo.php @@ -14,32 +14,55 @@ class SSRS_Object_ExecutionInfo extends SSRS_Object_Abstract { */ public $executionInfo; - public function __construct(stdClass $info) { - $this->setData($info->executionInfo); + public function __construct(stdClass $info = null) { + if ($info) { + $this->setData($info->executionInfo); + } + $this->executionInfo = $this; } + public function getExecutionId() { + return empty($this->data['ExecutionID']) ? null : $this->data['ExecutionID']; + } + + public function getExpirationTimestamp() { + return strtotime($this->data['ExpirationDateTime']); + } + public function setParameters(stdClass $params) { return $this->setReportParameters($params); } - public function setReportParameters(stdClass $params) { + public function setReportParameters($reportParameters) { $parameters = array(); - if (isset($params->ReportParameter)) { - $reportParameters = is_array($params->ReportParameter) ? $params->ReportParameter : array($params->ReportParameter); - foreach ($reportParameters AS $reportParam) { - $parameter = new SSRS_Object_ReportParameter($reportParam->Name, isset($reportParam->Value) ? $reportParam->Value : null); - $parameter->setData($reportParam); - $parameters[] = $parameter; - } + if ($reportParameters instanceof stdClass) { + $reportParameters = isset($reportParameters->ReportParameter) ? $reportParameters->ReportParameter : array(); + $reportParameters = is_array($reportParameters) ? $reportParameters : array($reportParameters); } + foreach ($reportParameters AS $reportParam) { + if (is_object($reportParam)) { + $data = array( + 'name' => $reportParam->Name, + 'value' => isset($reportParam->Value) ? $reportParam->Value : null + ); + } else { + $data = $reportParam; + } + + $parameter = new SSRS_Object_ReportParameter($data['name'], $data['value']); + $parameter->setData($reportParam); + + $parameters[] = $parameter; + } + $this->data['ReportParameters'] = $parameters; return $this; } - - public function getReportPath(){ + + public function getReportPath() { return $this->data['ReportPath']; } @@ -64,4 +87,13 @@ class SSRS_Object_ExecutionInfo extends SSRS_Object_Abstract { return null; } -} + public function __sleep() { + $this->executionInfo = null; + return array('data'); + } + + public function __wakeup() { + //$this->executionInfo = $this; + } + +}
\ No newline at end of file diff --git a/library/SSRS/Object/ReportParameter.php b/library/SSRS/Object/ReportParameter.php index 343e4b5..7fb5a6a 100755 --- a/library/SSRS/Object/ReportParameter.php +++ b/library/SSRS/Object/ReportParameter.php @@ -38,33 +38,34 @@ class SSRS_Object_ReportParameter extends SSRS_Object_Abstract { return $defaults; } - /** - * - * @return \SSRS_Object_ReportParameter_ValidValue[] - */ - public function getValidValues() { - $data = array(); + public function setValidValues($validValues) { + if ($validValues instanceof stdClass && isset($validValues->ValidValue) && is_object($validValues->ValidValue)) { + $validValues = array($validValues->ValidValue); + } elseif ($validValues instanceof stdClass && isset($validValues->ValidValue)) { + $validValues = $validValues->ValidValue; + } - if (key_exists('ValidValues', $this->data) && isset($this->data['ValidValues']->ValidValue)) { - if (is_object($this->data['ValidValues']->ValidValue)) { - $data[] = new SSRS_Object_ReportParameter_ValidValue($this->data['ValidValues']->ValidValue->Label, - $this->data['ValidValues']->ValidValue->Value); + $data = array(); + foreach ($validValues AS $value) { + if (is_object($value)) { + $data[] = new SSRS_Object_ReportParameter_ValidValue((string) $value->Label, (string) $value->Value); + } elseif (is_array($value)) { + $data[] = new SSRS_Object_ReportParameter_ValidValue((string) $value['Label'], (string) $value['Value']); } else { - foreach ($this->data['ValidValues']->ValidValue AS $value) { - if (is_object($value)) { - $data[] = new SSRS_Object_ReportParameter_ValidValue($value->Label, $value->Value); - } else { - $data[] = new SSRS_Object_ReportParameter_ValidValue((string) $value, (string) $value); - } - } + $data[] = new SSRS_Object_ReportParameter_ValidValue((string) $value, (string) $value); } - -// if (!empty($this->data['AllowBlank'])) { -// $data[] = new SSRS_Object_ReportParameter_ValidValue('', ''); -// } } - return $data; + $this->data['ValidValues'] = $data; + return $this; + } + + /** + * + * @return \SSRS_Object_ReportParameter_ValidValue[] + */ + public function getValidValues() { + return empty($this->data['ValidValues']) ? array() : $this->data['ValidValues']; } /** @@ -113,7 +114,7 @@ class SSRS_Object_ReportParameter extends SSRS_Object_Abstract { * @return bool */ public function isSelect() { - return isset($this->data['ValidValues']); + return !empty($this->data['ValidValues']); } } |