finished Row
authorMichael Wallner <mike@php.net>
Wed, 15 Oct 2014 14:51:50 +0000 (16:51 +0200)
committerMichael Wallner <mike@php.net>
Wed, 15 Oct 2014 14:51:50 +0000 (16:51 +0200)
24 files changed:
pq-gateway/pq/Gateway/Row.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__construct.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__get.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__invoke.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__isset.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__set.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/__unset.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/allOf.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/cell.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/changes.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/create.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/criteria.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/delete.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/export.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/exportPublic.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/getData.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/getIdentity.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/getTable.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/isDirty.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/jsonSerialize.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/ofWhich.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/prime.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/refresh.md [new file with mode: 0644]
pq-gateway/pq/Gateway/Row/update.md [new file with mode: 0644]

diff --git a/pq-gateway/pq/Gateway/Row.md b/pq-gateway/pq/Gateway/Row.md
new file mode 100644 (file)
index 0000000..430558b
--- /dev/null
@@ -0,0 +1,13 @@
+# class pq\Gateway\Row implements JsonSerializable
+
+The row gateway.
+
+## Properties:
+
+* protected pq\Gateway\Table $table  
+  The originating table.
+* protected array $data  
+  The row's data.
+* protected array $cell  
+  The list of cells abstracting access to the row's data.
+
diff --git a/pq-gateway/pq/Gateway/Row/__construct.md b/pq-gateway/pq/Gateway/Row/__construct.md
new file mode 100644 (file)
index 0000000..9351b9b
--- /dev/null
@@ -0,0 +1,13 @@
+# void pq\Gateway\Row::__construct(pq\Gateway\Table $table[, array $data = NULL[, bool $prime = FALSE]])
+
+Create a new row gateway.
+
+## Params:
+
+* pq\Gateway\Table $table  
+  The originating table.
+* Optional array $data = NULL  
+  The data of the row.
+* Optional bool $prime = FALSE  
+  Whether to prime the rows cells with the data.
+
diff --git a/pq-gateway/pq/Gateway/Row/__get.md b/pq-gateway/pq/Gateway/Row/__get.md
new file mode 100644 (file)
index 0000000..93cd1cf
--- /dev/null
@@ -0,0 +1,12 @@
+# pq\Gateway\Cell pq\Gateway\Row::__get(string $p)
+
+Cell read accessor through properties.
+
+## Params:
+
+* string $p  
+  The property/column name.
+
+## Returns:
+
+* pq\Gateway\Cell, the cell managing access to the column data.
diff --git a/pq-gateway/pq/Gateway/Row/__invoke.md b/pq-gateway/pq/Gateway/Row/__invoke.md
new file mode 100644 (file)
index 0000000..8117ae2
--- /dev/null
@@ -0,0 +1,12 @@
+# pq\Gateway\Row pq\Gateway\Row::__invoke(array $data)
+
+Copy constructor.
+
+## Params:
+
+* array $data  
+  The data of the clone of the row.
+
+## Returns:
+
+* pq\Gateway\Row, clone.
diff --git a/pq-gateway/pq/Gateway/Row/__isset.md b/pq-gateway/pq/Gateway/Row/__isset.md
new file mode 100644 (file)
index 0000000..8c64905
--- /dev/null
@@ -0,0 +1,12 @@
+# bool pq\Gateway\Row::__isset(string $p)
+
+Check whether the column isset.
+
+## Params:
+
+* string $p  
+  The column/property name.
+
+## Returns:
+
+* bool, whether the column isset.
diff --git a/pq-gateway/pq/Gateway/Row/__set.md b/pq-gateway/pq/Gateway/Row/__set.md
new file mode 100644 (file)
index 0000000..cec6d05
--- /dev/null
@@ -0,0 +1,9 @@
+# void pq\Gateway\Row::__set(string $p)
+
+Cell write accessor through properties.
+See pq\Gateway\Cell::set().
+
+## Params:
+
+* string $p  
+  The property/column name.
diff --git a/pq-gateway/pq/Gateway/Row/__unset.md b/pq-gateway/pq/Gateway/Row/__unset.md
new file mode 100644 (file)
index 0000000..731d71d
--- /dev/null
@@ -0,0 +1,8 @@
+# void pq\Gateway\Row::__unset(string $p)
+
+Unset the columnd within the row.
+
+## Params:
+
+* string $p  
+  The property/column name.
diff --git a/pq-gateway/pq/Gateway/Row/allOf.md b/pq-gateway/pq/Gateway/Row/allOf.md
new file mode 100644 (file)
index 0000000..3d97bd9
--- /dev/null
@@ -0,0 +1,25 @@
+# mixed pq\Gateway\Row::allOf(mixed $foreign[, string $ref = NULL[, string $order = NULL[, int $limit = 0[, int $offset = 0]]]])
+
+Find the child rows by foreign key.
+See pq\Gateway\Table::of().
+
+## Params:
+
+* mixed $foreign  
+  The foreign table (name).
+* Optional string $ref = NULL  
+  A specific relation name if there are more than one foreign keys on the same table.
+* Optional string $order = NULL  
+  Sorting clause.
+* Optional int $limit = 0  
+  Row count limit.
+* Optional int $offset = 0  
+  Row count offset.
+
+## Returns:
+
+* a [deferred promise of React/Promise](https://github.com/reactphp/promise#deferred-1), when using pq\Query\AsyncExecutor, the asynchronous executor.  
+  Else:
+* pq\Result, if pq\Result::$status != pq\Result::TUPLES_OK.
+* pq\Result, if the rowset prototype pq\Gateway\Table::$rowset is empty.
+* pq\Gateway\Rowset, an instance of the rowset prototype.
diff --git a/pq-gateway/pq/Gateway/Row/cell.md b/pq-gateway/pq/Gateway/Row/cell.md
new file mode 100644 (file)
index 0000000..6f22032
--- /dev/null
@@ -0,0 +1,13 @@
+# protected pq\Gateway\Cell pq\Gateway\Row::cell(string $col)
+
+Create or retrieve an already primed cell.
+
+## Params:
+
+* string $col  
+  The column name.
+
+
+## Returns:
+
+* pq\Gateway\Cell, the cell manging access to the column data.
diff --git a/pq-gateway/pq/Gateway/Row/changes.md b/pq-gateway/pq/Gateway/Row/changes.md
new file mode 100644 (file)
index 0000000..f065926
--- /dev/null
@@ -0,0 +1,11 @@
+# protected pq\Gateway\Row::changes()
+
+Export modified data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, list of modified columns and their values.
diff --git a/pq-gateway/pq/Gateway/Row/create.md b/pq-gateway/pq/Gateway/Row/create.md
new file mode 100644 (file)
index 0000000..3f85106
--- /dev/null
@@ -0,0 +1,12 @@
+# pq\Gateway\Row pq\Gateway\Row::create()
+
+Create this row in the database.
+Notifies the table about the "create" event.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
diff --git a/pq-gateway/pq/Gateway/Row/criteria.md b/pq-gateway/pq/Gateway/Row/criteria.md
new file mode 100644 (file)
index 0000000..308f43a
--- /dev/null
@@ -0,0 +1,11 @@
+# protected array pq\Gateway\Row::criteria()
+
+Convert the row's identity to to where criteria.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, list of where criteria.
diff --git a/pq-gateway/pq/Gateway/Row/delete.md b/pq-gateway/pq/Gateway/Row/delete.md
new file mode 100644 (file)
index 0000000..3fea80b
--- /dev/null
@@ -0,0 +1,16 @@
+# pq\Query\Row pq\Query\Row::delete()
+
+Delete this row in the database.
+Notifies the table about the "delete" event.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self with primed cells.
+
+## Throws:
+
+* UnexpectedValueExceptio, if the result indicates that no row was deleted.
diff --git a/pq-gateway/pq/Gateway/Row/export.md b/pq-gateway/pq/Gateway/Row/export.md
new file mode 100644 (file)
index 0000000..04f1531
--- /dev/null
@@ -0,0 +1,15 @@
+# array pq\Gateway\Row::export()
+
+Export the current state.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, the row's plain data.
+
+## Throws:
+
+* UnexpectedValueException, if any of the row's cells contain expressions.
diff --git a/pq-gateway/pq/Gateway/Row/exportPublic.md b/pq-gateway/pq/Gateway/Row/exportPublic.md
new file mode 100644 (file)
index 0000000..4446d8f
--- /dev/null
@@ -0,0 +1,12 @@
+# array pq\Gateway\Row::exportPublic()
+
+Export current state with security sensitive data removed.
+Calls pq\Gateway\Row::export() by default; to be overriden.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, the row's plain data except security sensitive data like passwords, etc.
diff --git a/pq-gateway/pq/Gateway/Row/getData.md b/pq-gateway/pq/Gateway/Row/getData.md
new file mode 100644 (file)
index 0000000..adead57
--- /dev/null
@@ -0,0 +1,11 @@
+# array pq\Gateway\Row::getData()
+
+Retrieve the original row data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, the original data.
diff --git a/pq-gateway/pq/Gateway/Row/getIdentity.md b/pq-gateway/pq/Gateway/Row/getIdentity.md
new file mode 100644 (file)
index 0000000..2e34cff
--- /dev/null
@@ -0,0 +1,15 @@
+# array pq\Gateway\Row::getIdentity()
+
+Retrieve a list of columns and their values (the primary key, if it exists, else all columns) to identify the row in the table.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, list of columns and values identifying this row.
+
+## Throws:
+
+* OutOfBoundsException, if a primary key column does not exist due to possible out-of-date cache.
diff --git a/pq-gateway/pq/Gateway/Row/getTable.md b/pq-gateway/pq/Gateway/Row/getTable.md
new file mode 100644 (file)
index 0000000..91a28aa
--- /dev/null
@@ -0,0 +1,11 @@
+# pq\Gateway\Table pq\Gateway\Row::getTable()
+
+Retrieve the table from which this row originates.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Table, the originating table.
diff --git a/pq-gateway/pq/Gateway/Row/isDirty.md b/pq-gateway/pq/Gateway/Row/isDirty.md
new file mode 100644 (file)
index 0000000..754a779
--- /dev/null
@@ -0,0 +1,11 @@
+# bool pq\Gateway\Row::isDirty()
+
+Whether the row has been modified.
+
+## Params:
+
+None.
+
+## Returns:
+
+* bool, whether any the row's cell is dirty.
diff --git a/pq-gateway/pq/Gateway/Row/jsonSerialize.md b/pq-gateway/pq/Gateway/Row/jsonSerialize.md
new file mode 100644 (file)
index 0000000..bf0ad98
--- /dev/null
@@ -0,0 +1,12 @@
+# array pq\Gateway\Row::jsonSerialize()
+
+Implements JsonSerializable.
+Calls pq\Gateway\Row::exportPublic() by default.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, the row's data for JSON serialization.
diff --git a/pq-gateway/pq/Gateway/Row/ofWhich.md b/pq-gateway/pq/Gateway/Row/ofWhich.md
new file mode 100644 (file)
index 0000000..32828a0
--- /dev/null
@@ -0,0 +1,19 @@
+# mixed pq\Gateway\Row::ofWhich(mixed $foreign[, string $ref = NULL])
+
+Find the parent row by foreign key.
+See pq\Gateway\Table::by().
+
+## Params:
+
+* mixed $foreign  
+  The foreign table (name).
+* Optional string $ref = NULL  
+  A specific relation name if there are more than one foreign keys to the same table.
+
+## Returns:
+
+* a [deferred promise of React/Promise](https://github.com/reactphp/promise#deferred-1), when using pq\Query\AsyncExecutor, the asynchronous executor.  
+  Else:
+* pq\Result, if pq\Result::$status != pq\Result::TUPLES_OK.
+* pq\Result, if the rowset prototype pq\Gateway\Table::$rowset is empty.
+* pq\Gateway\Rowset, an instance of the rowset prototype.
diff --git a/pq-gateway/pq/Gateway/Row/prime.md b/pq-gateway/pq/Gateway/Row/prime.md
new file mode 100644 (file)
index 0000000..8c48040
--- /dev/null
@@ -0,0 +1,11 @@
+# protected pq\Gateway\Row pq\Gateway\Row::prime()
+
+Prime the cells with dirty data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
diff --git a/pq-gateway/pq/Gateway/Row/refresh.md b/pq-gateway/pq/Gateway/Row/refresh.md
new file mode 100644 (file)
index 0000000..05f4dd0
--- /dev/null
@@ -0,0 +1,12 @@
+# pq\Gateway\Row pq\Gateway\Row::refresh()
+
+Refresh the columns data from the table.
+Resets all modifications.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
diff --git a/pq-gateway/pq/Gateway/Row/update.md b/pq-gateway/pq/Gateway/Row/update.md
new file mode 100644 (file)
index 0000000..8646fd2
--- /dev/null
@@ -0,0 +1,16 @@
+# pq\Gateway\Row pq\Gateway\Row::update()
+
+Update this row in the database.
+Notifies the table about the "update" event.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
+
+## Throws:
+
+* UnexpectedValueExceptio, if the result indicates that no row was updated.