Commit 286f7924cdb2c750ae2eeb4d10bcb908c83acf27

Authored by Benjamin Renard
1 parent 69602cd7

Derived parameter compilation only after a modification

src/InputOutput/IHMImpl/Config/IHMConfigClass.php
@@ -78,6 +78,11 @@ class IHMConfigClass @@ -78,6 +78,11 @@ class IHMConfigClass
78 { 78 {
79 return self::getUserWSPath().self::$userParamMgrFile; 79 return self::getUserWSPath().self::$userParamMgrFile;
80 } 80 }
  81 +
  82 + public static function getUserDerivedParamFilePath($paramId)
  83 + {
  84 + return self::getUserWSPath().$paramId.".xml";
  85 + }
81 86
82 public static function getLocalParamDBPath() 87 public static function getLocalParamDBPath()
83 { 88 {
src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php
@@ -37,7 +37,7 @@ class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractCl @@ -37,7 +37,7 @@ class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractCl
37 //create a derived param for the expression 37 //create a derived param for the expression
38 $this->paramManager->addProcessParam($paramId, $expressionInfo["expression"], 38 $this->paramManager->addProcessParam($paramId, $expressionInfo["expression"],
39 $expressionInfo['params'], $input->sampling, 39 $expressionInfo['params'], $input->sampling,
40 - $input->gap,$this->paramsData); 40 + $input->gap,time(),$this->paramsData);
41 41
42 //add derived param to output 42 //add derived param to output
43 $paramsNode->addParam($paramId); 43 $paramsNode->addParam($paramId);
src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
@@ -34,9 +34,9 @@ class IHMParamManagerClass @@ -34,9 +34,9 @@ class IHMParamManagerClass
34 /* 34 /*
35 * @brief Add a process parameter 35 * @brief Add a process parameter
36 */ 36 */
37 - public function addProcessParam($paramId,$expression,$params,$sampling,$gap,$paramsData) 37 + public function addProcessParam($paramId,$expression,$params,$sampling,$gap,$dateModif,$paramsData)
38 { 38 {
39 - $paramsData->addProcessParamToCreate($paramId, $expression, $params, $sampling, $gap); 39 + $paramsData->addProcessParamToCreate($paramId, $expression, $params, $sampling, $gap,$dateModif);
40 40
41 foreach ($params as $param) 41 foreach ($params as $param)
42 $this->addExistingParam($param,$paramsData); 42 $this->addExistingParam($param,$paramsData);
@@ -151,7 +151,7 @@ class IHMParamManagerClass @@ -151,7 +151,7 @@ class IHMParamManagerClass
151 //create a process param for the derived parameter 151 //create a process param for the derived parameter
152 $this->addProcessParam($paramId, $expressionInfo["expression"], 152 $this->addProcessParam($paramId, $expressionInfo["expression"],
153 $expressionInfo['params'], $res["param"]["timestep"], 153 $expressionInfo['params'], $res["param"]["timestep"],
154 - 0,$paramsData); 154 + 0,$res["param"]["dateModif"],$paramsData);
155 155
156 return array("id" => $paramId, "indexes" => array(), "calib_infos" => array()); 156 return array("id" => $paramId, "indexes" => array(), "calib_infos" => array());
157 } 157 }
src/InputOutput/IHMImpl/Tools/IHMUserParamLoaderClass.php
@@ -83,6 +83,9 @@ class IHMUserParamLoaderClass @@ -83,6 +83,9 @@ class IHMUserParamLoaderClass
83 //id 83 //id
84 $paramId = $derivedParamNode->getAttribute(self::$mgrDerivedParamIdAtt); 84 $paramId = $derivedParamNode->getAttribute(self::$mgrDerivedParamIdAtt);
85 85
  86 + //modification date
  87 + $dateModif = filemtime(IHMConfigClass::getUserDerivedParamFilePath($paramId));
  88 +
86 //name 89 //name
87 $paramName = $derivedParamNode->getAttribute(self::$mgrDerivedParamNameAtt); 90 $paramName = $derivedParamNode->getAttribute(self::$mgrDerivedParamNameAtt);
88 91
@@ -97,7 +100,8 @@ class IHMUserParamLoaderClass @@ -97,7 +100,8 @@ class IHMUserParamLoaderClass
97 "name" => $paramName, 100 "name" => $paramName,
98 "expression" => $paramExpression, 101 "expression" => $paramExpression,
99 "timestep" => $paramTimeStep, 102 "timestep" => $paramTimeStep,
100 - "info" => $this->loadDerivedParameterInfo($id) 103 + "info" => $this->loadDerivedParameterInfo($id),
  104 + "dateModif" => $dateModif
101 )); 105 ));
102 } 106 }
103 } 107 }
src/Request/ParamsRequestImpl/ParamsRequestClass.php
@@ -82,6 +82,8 @@ class ParamsRequestClass extends ProcessRequestClass @@ -82,6 +82,8 @@ class ParamsRequestClass extends ProcessRequestClass
82 $this->requestData->setLastErrorMessage('Cannot copy param definition file for '.$key); 82 $this->requestData->setLastErrorMessage('Cannot copy param definition file for '.$key);
83 return false; 83 return false;
84 } 84 }
  85 +
  86 + touch($destinationFile, filemtime($value));
85 } 87 }
86 88
87 //create processed params files 89 //create processed params files
@@ -91,7 +93,7 @@ class ParamsRequestClass extends ProcessRequestClass @@ -91,7 +93,7 @@ class ParamsRequestClass extends ProcessRequestClass
91 $doc->preserveWhiteSpace = false; 93 $doc->preserveWhiteSpace = false;
92 $doc->formatOutput = true; 94 $doc->formatOutput = true;
93 95
94 - if (!$xmlNode = $value->toXMLNode($doc)) 96 + if (!$xmlNode = $value["param"]->toXMLNode($doc))
95 { 97 {
96 $this->requestData->setLastErrorMessage('Cannot create params XML file for '.$key); 98 $this->requestData->setLastErrorMessage('Cannot create params XML file for '.$key);
97 return false; 99 return false;
@@ -111,6 +113,8 @@ class ParamsRequestClass extends ProcessRequestClass @@ -111,6 +113,8 @@ class ParamsRequestClass extends ProcessRequestClass
111 $this->requestData->setLastErrorMessage('Cannot save params XML file for '.$key); 113 $this->requestData->setLastErrorMessage('Cannot save params XML file for '.$key);
112 return false; 114 return false;
113 } 115 }
  116 +
  117 + touch($destinationFile, $value["dateModif"]);
114 } 118 }
115 119
116 return true; 120 return true;
src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
@@ -59,7 +59,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass @@ -59,7 +59,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
59 return $this->processParamsToCreate; 59 return $this->processParamsToCreate;
60 } 60 }
61 61
62 - public function addProcessParamToCreate($paramId, $expression, $getParams, $sampling, $gap) 62 + public function addProcessParamToCreate($paramId, $expression, $getParams, $sampling, $gap, $dateModif)
63 { 63 {
64 $newParam = new ParamNodeClass(); 64 $newParam = new ParamNodeClass();
65 $newParam->setId($paramId); 65 $newParam->setId($paramId);
@@ -73,7 +73,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass @@ -73,7 +73,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
73 } 73 }
74 $newParam->setProcess($expression); 74 $newParam->setProcess($expression);
75 $newParam->setOutput(); 75 $newParam->setOutput();
76 - $this->processParamsToCreate[$paramId] = $newParam; 76 + $this->processParamsToCreate[$paramId] = array('param' => $newParam, 'dateModif' => $dateModif);
77 } 77 }
78 } 78 }
79 79