public function __construct(PlDBTableField $field, $value);
}
-interface PlDBTableFieldFormatter extends PlDBTableFieldValidator, XDBFormat
+interface PlDBTableFieldFormatter extends PlDBTableFieldValidator, XDBFormat, PlExportable
{
}
public function format()
{
- return XDB::escape($this->datetime->format($this->storageFormat));
+ return XDB::escape($this->export());
}
public function date($format)
{
return $this->datetime->format($format);
}
+
+ public function export()
+ {
+ return $this->datetime->format($this->storageFormat);
+ }
}
class JSonFieldFormatter implements PlDBTableFieldFormatter, ArrayAccess
return XDB::escape(json_encode($this->data));
}
+ public function export()
+ {
+ return $this->data;
+ }
+
public function offsetExists($offset)
{
return isset($this->data[$offset]);
$allowIncomplete));
}
+ public function exportEntry(PlDBTableEntry $entry)
+ {
+ $export = array();
+ foreach ($this->schema as $key=>$field) {
+ $value = $entry->$key;
+ if ($value instanceof PlExportable) {
+ $value = $value->export();
+ }
+ $export[$key] = $value;
+ }
+ return $export;
+ }
+
public static function get($name)
{
return new PlDBTable($name);
}
}
-class PlDBTableEntry extends PlAbstractIterable
+class PlDBTableEntry extends PlAbstractIterable implements PlExportable
{
private $table;
private $changed;
}
return $this->table->deleteEntry($this, true);
}
+
+ public function export()
+ {
+ return $this->table->exportEntry($this);
+ }
}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
/** class for describing flags
*/
-class PlFlagSet extends PlAbstractIterable implements XDBFormat
+class PlFlagSet extends PlAbstractIterable implements XDBFormat, PlExportable
{
/** string that holds the PlFlagSet */
private $values = array();
return $flags;
}
+ /** export the PlFlagSet
+ */
+ public function export()
+ {
+ $array = array();
+ foreach ($this->values as $key=>$value) {
+ if ($value) {
+ $array[] = $key;
+ }
+ }
+ return $array;
+ }
/** format for XDB
*/
*/
public function iterate()
{
- $array = array();
- foreach ($this->values as $key=>$value) {
- if ($value) {
- $array[] = $key;
- }
- }
- return PlIteratorUtils::fromArray($array, 1, true);
+ return PlIteratorUtils::fromArray($this->export(), 1, true);
}
}