/** * Serialize * * @param var value * @return string */ public function serialize($payload) { $t = new Tree(); $t->setEncoding('UTF-8'); if ($payload instanceof Payload) { $root = isset($payload->properties['name']) ? $payload->properties['name'] : 'root'; $payload = $payload->value; } else { $root = 'root'; } if ($payload instanceof Generic) { $t->root = Node::fromObject($payload, $root); } else { if (is_array($payload)) { $t->root = Node::fromArray($payload, $root); } else { $t->root = new Node($root, $payload); } } return $t->getDeclaration() . "\n" . $t->getSource(INDENT_NONE); }
/** * Adds an error. The XML representation will look like this: * <xmp> * <error * checker="foo.bar.wrapper.MyLoginDataChecker" * type="user_nonexistant" * field="username" * /> * </xmp> * * @param string checker The class checking the input * @param string type The error type * @param string field default '*' The form field corresponding * @param var info default NULL * @return bool FALSE */ public function addFormError($checker, $type, $field = '*', $info = NULL) { if (is_array($info)) { $c = Node::fromArray($info, 'error'); } else { if (is_object($info)) { $c = Node::fromObject($info, 'error'); } else { $c = new Node('error', $info); } } $c->setAttributes(array('type' => $type, 'field' => $field, 'checker' => $checker)); $this->document->formerrors->addChild($c); return FALSE; }
public function fromObject() { $this->assertEquals("<node>\n" . " <id>1549</id>\n" . " <color>green</color>\n" . " <name>Name goes here</name>\n" . " <__id/>\n" . "</node>", $this->sourceOf(Node::fromObject(newinstance('lang.Object', array(), '{ public $id= 1549; public $color= "green"; public $name; public function __construct() { $this->name= new String("Name goes here"); } }'), 'node'))); }
public function dateFormatCallbackWithoutTZ() { $date = new Date('2009-09-20 21:33:00'); $this->assertEquals($date->toString('Y-m-d H:i:s T'), $this->runTransformation(Node::fromObject($date, 'date')->getSource(), 'xp.date::format', array('string(/date/value)', "'Y-m-d H:i:s T'"))); }
public function writeInterfaces($description, $output) { static $purposes = array(HOME_INTERFACE => 'home', REMOTE_INTERFACE => 'remote'); foreach ($description->getInterfaces() as $type => $interface) { $node = Node::fromObject($interface, 'interface'); $node->setAttribute('purpose', $purposes[$type]); $node->addChild(new Node('jndiName', $this->jndi)); $this->processor->setXMLBuf($node->getSource(INDENT_NONE)); $this->processor->run(); $output->append(strtr($interface->getClassName(), '.', '/') . xp::CLASS_FILE_EXT, $this->processor->output()); } }