summaryrefslogtreecommitdiffstats
path: root/library/SSRS/Object
diff options
context:
space:
mode:
authorarron.woods@gmail.com <arron.woods@gmail.com@deae1e92-32f9-c189-e222-5b9b5081a27a>2012-12-04 13:57:01 +0000
committerarron.woods@gmail.com <arron.woods@gmail.com@deae1e92-32f9-c189-e222-5b9b5081a27a>2012-12-04 13:57:01 +0000
commit32df2c87940c19a63dd4205443e44f39abf57ac5 (patch)
tree2d373d215567c72da0a86180679e3fa144dbe072 /library/SSRS/Object
parentd293a6b0a7363dbaaf9acfe95a889a89573f22ed (diff)
downloadphp-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-xlibrary/SSRS/Object/ExecutionInfo.php58
-rwxr-xr-xlibrary/SSRS/Object/ReportParameter.php47
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']);
}
}