--- /dev/null
+# 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.
+
--- /dev/null
+# 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.
+
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# void pq\Gateway\Row::__set(string $p)
+
+Cell write accessor through properties.
+See pq\Gateway\Cell::set().
+
+## Params:
+
+* string $p
+ The property/column name.
--- /dev/null
+# void pq\Gateway\Row::__unset(string $p)
+
+Unset the columnd within the row.
+
+## Params:
+
+* string $p
+ The property/column name.
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# protected pq\Gateway\Row::changes()
+
+Export modified data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, list of modified columns and their values.
--- /dev/null
+# 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.
--- /dev/null
+# protected array pq\Gateway\Row::criteria()
+
+Convert the row's identity to to where criteria.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, list of where criteria.
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# array pq\Gateway\Row::getData()
+
+Retrieve the original row data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* array, the original data.
--- /dev/null
+# 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.
--- /dev/null
+# pq\Gateway\Table pq\Gateway\Row::getTable()
+
+Retrieve the table from which this row originates.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Table, the originating table.
--- /dev/null
+# bool pq\Gateway\Row::isDirty()
+
+Whether the row has been modified.
+
+## Params:
+
+None.
+
+## Returns:
+
+* bool, whether any the row's cell is dirty.
--- /dev/null
+# 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.
--- /dev/null
+# 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.
--- /dev/null
+# protected pq\Gateway\Row pq\Gateway\Row::prime()
+
+Prime the cells with dirty data.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
--- /dev/null
+# pq\Gateway\Row pq\Gateway\Row::refresh()
+
+Refresh the columns data from the table.
+Resets all modifications.
+
+## Params:
+
+None.
+
+## Returns:
+
+* pq\Gateway\Row, self.
--- /dev/null
+# 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.