2013-01-18 13:07:25 -08:00

59 lines
1.4 KiB
PHP
Executable File

<?php
namespace Ordrin;
/* Tray Class */
class Tray {
function __construct($items = null) {
$this->items = $items;
$this->validate();
}
function add($item) {
if(!$item instanceof TrayItem) {
throw new OrdrinExceptionBadValue(array('Tray - Validation - Items (invalid, items must be a non-empty array of TrayItems or string tray representation)'));
}
array_push($this->items, $item);
}
function validate() {
$errors = array();
if(is_array($this->items) && !empty($this->items) && $this->items[0] instanceof TrayItem) {
foreach($this->items as $item) {
try {
$item->validate();
} catch (OrdrinExceptionBadValue $ex) {
$errors[]= $ex->getMessage();
}
}
}
else{
$validation = new Validation($errors);
$validation->validate('trayItems',$this->items);
}
if(!empty($errors)) {
throw new OrdrinExceptionBadValue($errors);
}
}
function _convertForAPI() {
$api_string = '';
foreach($this->items as $item){
if(strlen($api_string) !== 0){
$api_string .= "+";
}
$api_string .= $item->_convertForAPI();
}
return $api_string;
}
function __set($name, $value) {
$this->$name = $value;
}
function __get($name) {
return $this->$name;
}
}