summaryrefslogtreecommitdiffstats
path: root/library/SSRS/Object
diff options
context:
space:
mode:
authorarron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a>2011-03-10 23:14:50 +0000
committerarron.woods <arron.woods@deae1e92-32f9-c189-e222-5b9b5081a27a>2011-03-10 23:14:50 +0000
commit634884044dd95345962db9e54764f37f6ba84853 (patch)
treee16f69cd22e0ac4a1759987e2f66566b4f9a08eb /library/SSRS/Object
downloadphp-ssrs-634884044dd95345962db9e54764f37f6ba84853.zip
php-ssrs-634884044dd95345962db9e54764f37f6ba84853.tar.gz
php-ssrs-634884044dd95345962db9e54764f37f6ba84853.tar.bz2
v0.1 committed
Diffstat (limited to 'library/SSRS/Object')
-rwxr-xr-xlibrary/SSRS/Object/Abstract.php48
-rwxr-xr-xlibrary/SSRS/Object/ArrayIterator.php41
-rwxr-xr-xlibrary/SSRS/Object/CatalogItem.php10
-rwxr-xr-xlibrary/SSRS/Object/CatalogItems.php26
-rwxr-xr-xlibrary/SSRS/Object/ExecutionInfo.php19
-rwxr-xr-xlibrary/SSRS/Object/ExecutionParameter.php10
-rwxr-xr-xlibrary/SSRS/Object/ExecutionParameters.php38
-rwxr-xr-xlibrary/SSRS/Object/Extension.php10
-rwxr-xr-xlibrary/SSRS/Object/Extensions.php26
-rwxr-xr-xlibrary/SSRS/Object/ItemDefinition.php22
-rwxr-xr-xlibrary/SSRS/Object/Report.php14
-rwxr-xr-xlibrary/SSRS/Object/ReportOutput.php25
-rwxr-xr-xlibrary/SSRS/Object/ReportParameter.php10
-rwxr-xr-xlibrary/SSRS/Object/ReportParameters.php26
14 files changed, 325 insertions, 0 deletions
diff --git a/library/SSRS/Object/Abstract.php b/library/SSRS/Object/Abstract.php
new file mode 100755
index 0000000..40482a0
--- /dev/null
+++ b/library/SSRS/Object/Abstract.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_Abstract {
+
+ public $data = array();
+
+ public function __construct($data = null) {
+ $this->init();
+ $this->setData($data);
+ }
+
+ public function init() {
+
+ }
+
+ public function setData($data) {
+ if ($data instanceof stdClass) {
+ $data = get_object_vars($data);
+ }
+
+ if (is_array($data)) {
+ foreach ($data AS $key => $value) {
+ $this->$key = $value;
+ }
+ }
+
+ return $this;
+ }
+
+ public function __set($key, $value) {
+ $methodName = 'set' . ucfirst($key);
+ if (method_exists($this, $methodName)) {
+ $this->$methodName($value);
+ } else {
+ $this->data[$key] = $value;
+ }
+ }
+
+ public function __get($key) {
+ return isset($this->data[$key]) ? $this->data[$key] : null;
+ }
+
+} \ No newline at end of file
diff --git a/library/SSRS/Object/ArrayIterator.php b/library/SSRS/Object/ArrayIterator.php
new file mode 100755
index 0000000..ad53ad5
--- /dev/null
+++ b/library/SSRS/Object/ArrayIterator.php
@@ -0,0 +1,41 @@
+<?php
+
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+/**
+ * Description of Iterator
+ *
+ * @author andrew
+ */
+class SSRS_Object_ArrayIterator extends SSRS_Object_Abstract implements Iterator {
+
+ public $iteratorKey = 'Array';
+
+ public function next() {
+ return next($this->data[$this->iteratorKey]);
+ }
+
+ public function prev() {
+ return prev($this->data[$this->iteratorKey]);
+ }
+
+ public function key() {
+ return key($this->data[$this->iteratorKey]);
+ }
+
+ public function current() {
+ return current($this->data[$this->iteratorKey]);
+ }
+
+ public function valid() {
+ return isset($this->data[$this->iteratorKey][$this->key()]);
+ }
+
+ public function rewind() {
+ return reset($this->data[$this->iteratorKey]);
+ }
+
+} \ No newline at end of file
diff --git a/library/SSRS/Object/CatalogItem.php b/library/SSRS/Object/CatalogItem.php
new file mode 100755
index 0000000..cf0e25d
--- /dev/null
+++ b/library/SSRS/Object/CatalogItem.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_CatalogItem extends SSRS_Object_Abstract {
+
+}
diff --git a/library/SSRS/Object/CatalogItems.php b/library/SSRS/Object/CatalogItems.php
new file mode 100755
index 0000000..c68a964
--- /dev/null
+++ b/library/SSRS/Object/CatalogItems.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_CatalogItems extends SSRS_Object_ArrayIterator {
+
+ public $iteratorKey = 'CatalogItems';
+
+ public function init() {
+ $this->data['CatalogItems'] = array();
+ }
+
+ public function setCatalogItems(stdClass $items) {
+ foreach ($items->CatalogItem AS $item) {
+ $this->addCatalogItem(new SSRS_Object_CatalogItem($item));
+ }
+ }
+
+ public function addCatalogItem(SSRS_Object_CatalogItem $item) {
+ $this->data['CatalogItems'][] = $item;
+ }
+
+}
diff --git a/library/SSRS/Object/ExecutionInfo.php b/library/SSRS/Object/ExecutionInfo.php
new file mode 100755
index 0000000..42b8c31
--- /dev/null
+++ b/library/SSRS/Object/ExecutionInfo.php
@@ -0,0 +1,19 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_ExecutionInfo extends SSRS_Object_Abstract {
+
+ public function setExecutionInfo(stdClass $info) {
+ $this->setData($info);
+ }
+
+ public function setParameters(stdClass $params){
+ $this->data['Parameters'] = new SSRS_Object_ReportParameters();
+ $this->data['Parameters']->setParameters($params->ReportParameter);
+ }
+
+}
diff --git a/library/SSRS/Object/ExecutionParameter.php b/library/SSRS/Object/ExecutionParameter.php
new file mode 100755
index 0000000..36680e9
--- /dev/null
+++ b/library/SSRS/Object/ExecutionParameter.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ExecutionParameter extends SSRS_Object_Abstract {
+
+}
diff --git a/library/SSRS/Object/ExecutionParameters.php b/library/SSRS/Object/ExecutionParameters.php
new file mode 100755
index 0000000..b107438
--- /dev/null
+++ b/library/SSRS/Object/ExecutionParameters.php
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ExecutionParameters extends SSRS_Object_ArrayIterator{
+
+ public $iteratorKey = 'Parameters';
+
+ public function init() {
+ $this->data['Parameters'] = array();
+ }
+
+ public function setParameters(SSRS_Object_ReportParameters $parameters) {
+ foreach ($parameters AS $parameter) {
+ if (($parameters instanceof SSRS_Object_ExecutionParameter) === false) {
+ $parameter = new SSRS_Object_ExecutionParameter($parameter);
+ }
+
+ $this->data['Parameters'][] = $parameter;
+ }
+ }
+
+ public function getParameterArrayForSoapCall(){
+ $execParams = array();
+ foreach ($this AS $parameter) {
+ $execParams[] = array(
+ 'Name' => $parameter->Name,
+ 'Value' => $parameter->Value,
+ );
+ }
+
+ return $execParams;
+ }
+
+}
diff --git a/library/SSRS/Object/Extension.php b/library/SSRS/Object/Extension.php
new file mode 100755
index 0000000..efae2dd
--- /dev/null
+++ b/library/SSRS/Object/Extension.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_Extension extends SSRS_Object_Abstract {
+
+}
diff --git a/library/SSRS/Object/Extensions.php b/library/SSRS/Object/Extensions.php
new file mode 100755
index 0000000..786c1b6
--- /dev/null
+++ b/library/SSRS/Object/Extensions.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * SSRS_Object_Abstract
+ *
+ * @author arron
+ */
+class SSRS_Object_Extensions extends SSRS_Object_ArrayIterator {
+
+ public $iteratorKey = 'Extension';
+
+ public function init() {
+ $this->data['Extension'] = array();
+ }
+
+ public function setExtensions(stdClass $items) {
+ foreach ($items->Extension AS $item) {
+ $this->addExtension(new SSRS_Object_Extension($item));
+ }
+ }
+
+ public function addExtension(SSRS_Object_Extension $item) {
+ $this->data['Extension'][] = $item;
+ }
+
+}
diff --git a/library/SSRS/Object/ItemDefinition.php b/library/SSRS/Object/ItemDefinition.php
new file mode 100755
index 0000000..f63d57e
--- /dev/null
+++ b/library/SSRS/Object/ItemDefinition.php
@@ -0,0 +1,22 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ItemDefinition extends SSRS_Object_Abstract {
+
+ public function getXMLString() {
+ return $this->Definition;
+ }
+
+ public function getSimpleXML() {
+ return new SimpleXMLElement($this->getXMLString());
+ }
+
+ public function __toString() {
+ return $this->getXMLString();
+ }
+
+}
diff --git a/library/SSRS/Object/Report.php b/library/SSRS/Object/Report.php
new file mode 100755
index 0000000..6733e28
--- /dev/null
+++ b/library/SSRS/Object/Report.php
@@ -0,0 +1,14 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_Report extends SSRS_Object_Abstract{
+
+ public function setExecutionInfo(stdClass $info){
+ $this->data['executionInfo'] = new SSRS_Object_ExecutionInfo($info);
+ }
+
+}
diff --git a/library/SSRS/Object/ReportOutput.php b/library/SSRS/Object/ReportOutput.php
new file mode 100755
index 0000000..81f8598
--- /dev/null
+++ b/library/SSRS/Object/ReportOutput.php
@@ -0,0 +1,25 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ReportOutput extends SSRS_Object_Abstract {
+
+ public function download($filename){
+ header("Cache-Control: public");
+ header("Content-Description: File Transfer");
+ header("Content-Disposition: attachment; filename=$filename");
+ header("Content-Type: " . $this->mimeType);
+ header("Content-Transfer-Encoding: binary");
+ header("Content-Length: " . strlen($this->Result));
+
+ die($this->Result);
+ }
+
+ public function __toString(){
+ return $this->Result;
+ }
+
+}
diff --git a/library/SSRS/Object/ReportParameter.php b/library/SSRS/Object/ReportParameter.php
new file mode 100755
index 0000000..346b082
--- /dev/null
+++ b/library/SSRS/Object/ReportParameter.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ReportParameter extends SSRS_Object_Abstract {
+
+}
diff --git a/library/SSRS/Object/ReportParameters.php b/library/SSRS/Object/ReportParameters.php
new file mode 100755
index 0000000..dc9b7b3
--- /dev/null
+++ b/library/SSRS/Object/ReportParameters.php
@@ -0,0 +1,26 @@
+<?php
+
+/**
+ * Description of ExecutionParameters
+ *
+ * @author andrew
+ */
+class SSRS_Object_ReportParameters extends SSRS_Object_ArrayIterator{
+
+ public $iteratorKey = 'Parameters';
+
+ public function init() {
+ $this->data['Parameters'] = array();
+ }
+
+ public function setParameters($parameters) {
+ foreach ($parameters AS $parameter) {
+ if (($parameters instanceof SSRS_Object_ReportParameter) === false) {
+ $parameter = new SSRS_Object_ReportParameter($parameter);
+ }
+
+ $this->data['Parameters'][] = $parameter;
+ }
+ }
+
+}