From d6410187af0bab762630ec286340e8669a76dceb Mon Sep 17 00:00:00 2001
From: Benjamin Renard <benjamin.renard@akka.eu>
Date: Fri, 3 Jul 2015 08:58:46 +0200
Subject: [PATCH] Complete download intergration

---
 src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php | 40 +++++++++++++++++++++++++++++++---------
 src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputDownloadNodeClass.php   | 10 +++++++---
 2 files changed, 38 insertions(+), 12 deletions(-)

diff --git a/src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php b/src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php
index d43c91f..84db02a 100644
--- a/src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php
+++ b/src/InputOutput/IHMImpl/Params/DownloadImpl/IHMInputOutputParamsDownloadClass.php
@@ -27,24 +27,36 @@ class IHMInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClas
 		$outputsNode = $this->paramsData->getRequestNode()->getOutputsNode();
 		$downloadNode = $outputsNode->addNewOutput(RequestOutputTypeEnum::DOWNLOAD);
 
-		//timeformatData    : [['Y-m-dTH:i:s', 'YYYY-MM-DDThh:mm:ss'], ['Y m d H i s', 'YYYY MM DD hh mm ss'], ['d m Y H i s', 'DD MM YYYY hh mm ss'], ['Y z H i s', 'YYYY DDD hh mm ss']],
+		//timeformatData    : [['Y-m-dTH:i:s', 'YYYY-MM-DDThh:mm:ss'], ['DD Time', 'DD Time'], ['Timestamp', 'Timestamp']],
 		switch ($input->timeformat)
 		{
 			case 'YYYY-MM-DDThh:mm:ss' :
 				$downloadNode->setTimeFormat(RequestOutputDownloadTimeFormatEnum::ISO);
 				break;
+			case 'DD Time' :
+				$downloadNode->setTimeFormat(RequestOutputDownloadTimeFormatEnum::DDTIME);
+				break;
+			case 'Timestamp' :
+				$downloadNode->setTimeFormat(RequestOutputDownloadTimeFormatEnum::TIMESTAMP);
+				break;
 			default :
 				throw new Exception('Time format not implemented.');
 		}
 
-		//formatData    : [['ASCII', 'ASCII'],['vot', 'VOTable']],
+		//formatData    : [['ASCII', 'ASCII'],['vot', 'VOTable'],['cdf', 'CDF'],['json', 'JSON']],
 		switch ($input->fileformat)
 		{
 			case "ASCII" :
 				$downloadNode->setFileFormat(RequestOutputDownloadFileFormatEnum::ASCII);
 				break;
-				case "vot" :
-				 $downloadNode->setFileFormat(RequestOutputDownloadFileFormatEnum::VOTABLE);
+			case "vot" :
+				$downloadNode->setFileFormat(RequestOutputDownloadFileFormatEnum::VOTABLE);
+				break;
+			case "cdf" :
+				$downloadNode->setFileFormat(RequestOutputDownloadFileFormatEnum::CDF);
+				break;
+			case "json" :
+				$downloadNode->setFileFormat(RequestOutputDownloadFileFormatEnum::JSON);
 				break;
 			default :
 				throw new Exception('File format not implemented.');
@@ -65,12 +77,22 @@ class IHMInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClas
 		switch ($input->structure)
 		{
 			case "0" :
-				$downloadNode->setSamplingTime($input->sampling);
-				$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE);
+				if (!$input->refparamSampling)
+				{
+					$downloadNode->setSamplingTime($input->sampling);
+					$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE);
+				}
+				else
+					$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_REFPARAM);
 				break;
 			case "1" :
-				$downloadNode->setSamplingTime($input->sampling);
-				$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_PER_INTERVAL);
+				if (!$input->refparamSampling)
+				{
+					$downloadNode->setSamplingTime($input->sampling);
+					$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_PER_INTERVAL);
+				}
+				else
+					$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_PER_INTERVAL_REFPARAM);
 				break;
 			case "2" :
 				$downloadNode->setStructure(RequestOutputDownloadStructureEnum::ONE_FILE_PER_PARAMETER_PER_INTERVAL);
@@ -116,4 +138,4 @@ class IHMInputOutputParamsDownloadClass extends IHMInputOutputParamsAbstractClas
 		return $this->commonMarshallResult($data,DOWNLOAD_RESULT_FILE_KEY);
 	}
 }
-?>
\ No newline at end of file
+?>
diff --git a/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputDownloadNodeClass.php b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputDownloadNodeClass.php
index 90d7894..1b1b8cf 100644
--- a/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputDownloadNodeClass.php
+++ b/src/Request/ParamsRequestImpl/Nodes/Requests/RequestOutputDownloadNodeClass.php
@@ -17,8 +17,10 @@ define ("REQUESTOUTPUTDOWNLOADPARAM_CALIB", "calibration_info");
 
 abstract class RequestOutputDownloadTimeFormatEnum
 {
-	const UNKNOWN = "";
-	const ISO     = "ISO";
+	const UNKNOWN   = "";
+	const ISO       = "ISO";
+	const DDTIME    = "DD";
+	const TIMESTAMP = "DOUBLE";
 }
 
 abstract class RequestOutputDownloadFileFormatEnum
@@ -26,6 +28,8 @@ abstract class RequestOutputDownloadFileFormatEnum
 	const UNKNOWN = "";
 	const ASCII   = "ASCII";
 	const VOTABLE = "VOT";
+	const CDF     = "CDF";
+	const JSON    = "JSON";
 }
 
 abstract class RequestOutputDownloadStructureEnum
@@ -230,4 +234,4 @@ class RequestOutputDownloadNodeClass extends NodeClass
 	}
 }
 
-?>
\ No newline at end of file
+?>
--
libgit2 0.21.2