Blame view

src/InputOutput/IHMImpl/Params/StatisticsImpl/IHMInputOutputParamsStatisticsClass.php 2.45 KB
01ff2cc6   elena   catalog draft
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php

define ("STATISTICS_RESULT_FILE_KEY", "statistic");

/**
 * @class IHMInputOutputParamsStatisticsClass
 * @brief Implementation of IHMInputOutputParamsAbstractClass to treat catalog generation request
 * @details
*/
class IHMInputOutputParamsStatisticsClass extends IHMInputOutputParamsAbstractClass
{
	/*
	 * @brief method to unmarshall a catalog generation request
	*/
	protected function unmarshallRequest($input)
	{
		/*
		   {"id":"","timesrc":"TimeTable","name":"test","created":null,"description":"first","objName":"","objFormat":"","folderId":"","nbIntervals":0,"cacheToken":"","parameter":[{"param":"imf_gsm","function":"min"},{"param":"imf_mag","function":"max"}],"timeTables":[{"id":"sharedtt_26"},{"id":"sharedtt_27"}],"leaf":true,"nodeType":"catalog"}]'
		 */
		$paramsNode = $this->paramsData->getRequestNode()->getParamsNode();

		//unmarshall time definition
		$this->unmarshallTimeDefinition($input);

		//unmarshall statistic output definition
		$outputsNode = $this->paramsData->getRequestNode()->getOutputsNode();
		$catalogNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::STATISTIC);
		$catalogNode->setTimeFormat(RequestOutputStatisticTimeFormatEnum::ISO);
		$catalogNode->setFileFormat(RequestOutputStatisticFileFormatEnum::XML);
		
		// parse parameters / functions array                       
                foreach ($input->parameter as $obj) { 
                   $paramFunctionAssociation[$obj->param][] = $obj->function;                
                }
                
                foreach ($paramFunctionAssociation as $param => $functions) {
                     $paramsNode->addParam($param);
                     $outputParamNode = $catalogNode->addParam($param);
                     foreach ($functions as $function) $outputParamNode->addFunction($function);
                     $paramInfo = $this->paramManager->addExistingParam($param,$this->paramsData);
                } 

 		$resultFile = "result_".$this->requestID;
		$this->paramsData->addWaitingResult(STATISTICS_RESULT_FILE_KEY, $resultFile);
// 
		$postProcessCmd  = "mv statistic-*";
		$postProcessCmd .= " ".$resultFile.".xml";
 
// 
		$this->paramsData->setPostCmd($postProcessCmd);
 		return $this->paramsData;
	}

	/*
	 * @brief method to marshall the result of a catalog generation request
	*/
	protected function marshallResult($data)
	{
		return $this->commonMarshallResult($data,STATISTICS_RESULT_FILE_KEY);
	}
}
?>