silverstripe-framework/api/DataFormatter.php
Ingo Schommer 016cff2093 (merged from branches/roa. use "svn log -c <changeset> -g <module-svn-path>" for detailed commit message)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@60209 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-08-09 04:38:44 +00:00

42 lines
1.2 KiB
PHP

<?php
/**
* A DataFormatter object handles transformation of data from Sapphire model objects to a particular output format, and vice versa.
* This is most commonly used in developing RESTful APIs.
*/
abstract class DataFormatter extends Object {
/**
* Get a DataFormatter object suitable for handling the given file extension
*/
static function for_extension($extension) {
$classes = ClassInfo::subclassesFor("DataFormatter");
array_shift($classes);
foreach($classes as $class) {
$formatter = singleton($class);
if(in_array($extension, $formatter->supportedExtensions())) {
return $formatter;
}
}
}
/**
* Return an array of the extensions that this data formatter supports
*/
abstract function supportedExtensions();
/**
* Convert a single data object to this format. Return a string.
* @todo Add parameters for things like selecting output columns
*/
abstract function convertDataObject(DataObjectInterface $do);
/**
* Convert a data object set to this format. Return a string.
* @todo Add parameters for things like selecting output columns
*/
abstract function convertDataObjectSet(DataObjectSet $set);
}