ParamsRequestDataClass.php 4.77 KB
<?php

/**
 * @class ParamsRequestTypeEnumClass
 * @brief Enumerate for request type
 * @details
 */
abstract class ParamsRequestTypeEnumClass
{
	const UNKNOWN = "";
	const XMLREQUEST = "XMLREQUEST";
	const PARAMGEN   = "PARAMGEN";
}

/**
 * @class ParamsRequestDataClass
 * @brief Data for a params request. Inherits from ProcessRequestDataClass
 * @details
 */
class ParamsRequestDataClass extends ProcessRequestDataClass
{
	private $requestType           = ParamsRequestTypeEnumClass::XMLREQUEST;
	private $requestNodes          = array();
	private $compilationPath       = "";
	private $localBasePath         = "";
	private $waitingResults        = array();
	private $processParamsToCreate = array();
	private $localParamsToCreate   = array();
	private $localParamsToCreateAndCopy   = array();
	private $paramsToCopy          = array();
	private $paramId               = "";
	private $datasetId             = array();
	private $task                  = "";

	function __construct()
	{
		parent::__construct();
	}

	public function getCompilationPath()
	{
		return $this->compilationPath;
	}

	public function setCompilationPath($compilationPath)
	{
		$this->compilationPath = $compilationPath;
	}
	
	public function getLocalBasePath()
	{
		return $this->localBasePath;
	}
	
	public function setLocalBasePath($localBasePath)
	{
		$this->localBasePath = $localBasePath;
	}

	public function getRequestType()
	{
		return $this->requestType;
	}
	
	public function setRequestType($requestType)
	{
		$this->requestType = $requestType;
	}
	
	public function getTask()
	{
		return $this->task;
	}
	
	public function setTask($task)
	{
		$this->task = $task;
	}
	
	public function addRequestNode()
	{
		$newRequestNode = new RequestNodeClass();
		$this->requestNodes[] = $newRequestNode;
		return $newRequestNode;
	}
	
	public function getRequestNodes()
	{
		return $this->requestNodes;
	}

	public function getWaitingResults()
	{
		return $this->waitingResults;
	}
	
	public function getWaitingResult($key)
	{
		return $this->waitingResults[$key];
	}

	public function addWaitingResult($key, $result)
	{
		$this->waitingResults[$key] = $result;
	}

	public function getParamId()
	{
		return $this->paramId;
	}
	
	public function setParamId($paramId)
	{
		$this->paramId = $paramId;
	}
	
	public function getParamsToCopy()
	{
		return $this->paramsToCopy;
	}

	public function addParamToCopy($paramId,$paramFilePath)
	{
		$this->paramsToCopy[$paramId] = $paramFilePath;
	}

	public function getProcessParamsToCreate()
	{
		return $this->processParamsToCreate;
	}
	
	public function getDatasetForStat()
	{
		return $this->datasetId;
	}
	
	public function addDatasetForStat($dsId)
	{
		$this->datasetId[] = $dsId;
	}
	
	public function addProcessParamToCreate($paramId, $expression, $expression_info, $getParams, $sampling, $gap, $dateModif, $units, $ytitle)
	{
		$newParam = new ParamNodeClass();
		$newParam->setId($paramId);
		if (!empty($units)) {
			$newParam->getInfo()->setUnits($units);
		}
		if (!empty($ytitle)) {
			$newParam->getInfo()->setShortName($ytitle);
		}
		else {
			$newParam->getInfo()->setShortName($paramId);
		}
		$newParam->setSampling($sampling);
		if (isset($gap) && ($gap > 0))
			$newParam->setGap($gap);
		foreach ($getParams as $getParam)
		{
			$amdaParamNode = $newParam->addParamGet(ParamGetTypeEnum::AMDAPARAM);
			if (array_key_exists('template_args', $getParam))
				$amdaParamNode->setParamName($getParam['fullparamid']);
			else
				$amdaParamNode->setParamName($getParam['paramid']);
		}
		$newParam->setProcess($expression, $expression_info);
		$newParam->setOutput();

		$this->processParamsToCreate[$paramId] = array('param' => $newParam, 'dateModif' => $dateModif);
	}
	
	public function getLocalParamsToCreate()
	{
		return $this->localParamsToCreate;
	}
	
	public function getLocalParamsToCreateAndCopy()
	{
		return $this->localParamsToCreateAndCopy;
	}	
	
	public function addLocalParamToCreate($paramId, $viId, $realVarId, $minSampling, $maxSampling, $type, $size, $dateModif, $isImpex = false)
	{
		$newParam = new ParamNodeClass();
		$newParam->setId($paramId);
		
		$newParam->getInfo();
		
		$localParamNode = $newParam->addParamGet(ParamGetTypeEnum::LOCALBASE);
		$localParamNode->setVIId($viId);
		
		$localParamNode->addLocalParam($realVarId, $minSampling, $maxSampling, $type, $size);
		
		$newParam->setProcess("","");
		$newParam->setOutput();
		
		if ($isImpex) 
		{			
			$this->localParamsToCreateAndCopy[$paramId] = array('param' => $newParam, 'dateModif' => $dateModif);
		}
		else
		{
			$this->localParamsToCreate[$paramId] = array('param' => $newParam, 'dateModif' => $dateModif);
		}
		
		return $newParam;
	}
}

?>