Blame view

src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php 2.33 KB
22521f1c   Benjamin Renard   First commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

define ("DATAMINING_RESULT_FILE_KEY","datamining");

/**
 * @class IHMInputOutputParamsDataMiningClass
 * @brief Implementation of IHMInputOutputParamsAbstractClass to treat data mining request
 * @details
*/
class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractClass
{
	/*
	 * @brief method to unmarshall a data mining request
	*/
	protected function unmarshallRequest($input)
	{
		/*	'{"id":"cond_2","name":"us44_test1","sampling":600,"gap":5,"description":"","expression":"dst>0","timesrc":"Interval","startDate":"2008-01-31T00:00:00","stopDate":"2008-02-01T00:00:00","durationDay":"0001","durationHour":"00","durationMin":"00","durationSec":"00","leaf":true,"nodeType":"condition"}'
		 */

8c57155b   Benjamin Renard   Integration for t...
20
21
		$requestNode = $this->paramsData->addRequestNode();
		$paramsNode = $requestNode->getParamsNode();
22521f1c   Benjamin Renard   First commit
22
23

		//unmarshall time definition
8c57155b   Benjamin Renard   Integration for t...
24
		$this->unmarshallTimeDefinition($input, 0);
22521f1c   Benjamin Renard   First commit
25
26

		//unmarshall data mining output definition
8c57155b   Benjamin Renard   Integration for t...
27
		$outputsNode = $requestNode->getOutputsNode();
22521f1c   Benjamin Renard   First commit
28
29
30
31
32
33
34
35
36
37
38
39
40
		$dataMiningNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::DATAMINING);

		$dataMiningNode->setTimeFormat(RequestOutputDataMiningTimeFormatEnum::ISO);

		$dataMiningNode->setFileFormat(RequestOutputDataMiningFileFormatEnum::XML);

		//parse expression
		$expressionInfo = $this->expressionParser->parse($input->expression);
		$paramId = "datamining_".md5($expressionInfo["expression"]);

		//create a derived param for the expression
		$this->paramManager->addProcessParam($paramId, $expressionInfo["expression"],
				$expressionInfo['params'], $input->sampling,
286f7924   Benjamin Renard   Derived parameter...
41
				$input->gap,time(),$this->paramsData);
22521f1c   Benjamin Renard   First commit
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
			
		//add derived param to output
		$paramsNode->addParam($paramId);
		$dataMiningNode->setParam($paramId);

		$resultFile = "result_".$this->requestID;
		$this->paramsData->addWaitingResult(DATAMINING_RESULT_FILE_KEY, $resultFile);

		$postProcessCmd  = "mv timeTable_datamining_*.xml ".$resultFile.".xml";
		$postProcessCmd .= " && ";
		$postProcessCmd .= "mv Gaps_timeTable_datamining_*.xml Gaps_".$resultFile.".xml";

		$this->paramsData->setPostCmd($postProcessCmd);

		return $this->paramsData;
	}

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