RequestNodeClass.php 1.76 KB
<?php

define ("REQUESTPARAM_NAME", "param");
define ("REQUESTPARAM_ID", "id");

/**
 * @class RequestParamNodeClass
 * @brief Definition of a request param node for AMDA_Kernel
 * @details
*/
class RequestParamNodeClass extends NodeClass
{
	public function __construct()
	{
		parent::__construct(REQUESTPARAM_NAME);
	}

	public function setId($id)
	{
		$this->setAttribute(REQUESTPARAM_ID, $id);
	}

	public function getId()
	{
		return $this->getAttribute(REQUESTPARAM_ID);
	}
}

define ("REQUESTPARAMS_NAME", "params");

/**
 * @class RequestParamsNodeClass
 * @brief Definition of a request params node for AMDA_Kernel
 * @details
*/
class RequestParamsNodeClass extends NodeClass
{
	public function __construct()
	{
		parent::__construct(REQUESTPARAMS_NAME);
	}

	public function addParam($id)
	{
		foreach ($this->getChildrenByName(REQUESTPARAM_NAME) as $paramNode)
			if ($paramNode->getId() == $id)
				return;
		$param = new RequestParamNodeClass();
		$param->setId($id);
		$this->addChild($param);
	}

	public function getParamList()
	{
		return $this->getChildrenByName(REQUESTPARAM_NAME);
	}
}

define ("REQUEST_NAME", "request");

/**
 * @class RequestNodeClass
 * @brief Definition of a request node for AMDA_Kernel
 * @details
*/
class RequestNodeClass extends NodeClass
{
	public function __construct()
	{
		parent::__construct(REQUEST_NAME);

		$this->addChild(new RequestParamsNodeClass());
		$this->addChild(new RequestTimesNodeClass());
		$this->addChild(new RequestOutputsNodeClass());
	}

	public function getParamsNode()
	{
		return $this->getFirstChildByName(REQUESTPARAMS_NAME);
	}

	public function getTimesNode()
	{
		return $this->getFirstChildByName(REQUESTTIMES_NAME);
	}

	public function getOutputsNode()
	{
		return $this->getFirstChildByName(REQUESTOUTPUTS_NAME);
	}
}

?>