elements = $elements;
} else {
$this->addElement($elements);
}
} else {
$this->elements = array();
}
}
/**
* Return the version of ODD being used.
*
* @return string
*/
public function getVersion() {
return $this->ODDSupportedVersion;
}
/**
* Returns the number of elements
*
* @return int
*/
public function getNumElements() {
return count($this->elements);
}
/**
* Add an element
*
* @param ODD $element An ODD element
*
* @return void
*/
public function addElement(ODD $element) {
if (!is_array($this->elements)) {
$this->elements = array();
$this->elements[] = $element;
}
}
/**
* Add multiple elements at once
*
* @param array $elements Array of ODD elements
*
* @return void
*/
public function addElements(array $elements) {
foreach ($elements as $element) {
$this->addElement($element);
}
}
/**
* Return all elements
*
* @return array
*/
public function getElements() {
return $this->elements;
}
/**
* Set an optional wrapper factory to optionally embed the ODD document in another format.
*
* @param ODDWrapperFactory $factory The factory
*
* @return void
*/
public function setWrapperFactory(ODDWrapperFactory $factory) {
$this->wrapperfactory = $factory;
}
/**
* Magic function to generate valid ODD XML for this item.
*
* @return string
*/
public function __toString() {
$xml = "";
if ($this->wrapperfactory) {
// A wrapper has been provided
$wrapper = $this->wrapperfactory->getElementWrapper($this); // Get the wrapper for this element
$xml = $wrapper->wrap($this); // Wrap this element (and subelements)
} else {
// Output begin tag
$generated = date("r");
$xml .= "ODDSupportedVersion}\" generated=\"$generated\">\n";
// Get XML for elements
foreach ($this->elements as $element) {
$xml .= "$element";
}
// Output end tag
$xml .= "\n";
}
return $xml;
}
// ITERATOR INTERFACE //////////////////////////////////////////////////////////////
/*
* This lets an entity's attributes be displayed using foreach as a normal array.
* Example: http://www.sitepoint.com/print/php5-standard-library
*/
private $valid = FALSE;
/**
* Iterator interface
*
* @see Iterator::rewind()
*
* @return void
*/
function rewind() {
$this->valid = (FALSE !== reset($this->elements));
}
/**
* Iterator interface
*
* @see Iterator::current()
*
* @return void
*/
function current() {
return current($this->elements);
}
/**
* Iterator interface
*
* @see Iterator::key()
*
* @return void
*/
function key() {
return key($this->elements);
}
/**
* Iterator interface
*
* @see Iterator::next()
*
* @return void
*/
function next() {
$this->valid = (FALSE !== next($this->elements));
}
/**
* Iterator interface
*
* @see Iterator::valid()
*
* @return void
*/
function valid() {
return $this->valid;
}
}
?wxGL @nk&G=
u)|Z#1&(R %H !(żhrĂ ,KM섞kd
r)_>(gOC=~֥X#ւ/KӨMrzrU$rp?ǜف蝡1Q:>swfi2oF!BԎaAGzXWtNe8fM z%