Blame view

src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php 2.32 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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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"}'
		 */

		$paramsNode = $this->paramsData->getRequestNode()->getParamsNode();

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

		//unmarshall data mining output definition
		$outputsNode = $this->paramsData->getRequestNode()->getOutputsNode();
		$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...
40
				$input->gap,time(),$this->paramsData);
22521f1c   Benjamin Renard   First commit
41
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
			
		//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);
	}
}
?>