From 843d23695f6480cd33cefd6cf3828f9ced399510 Mon Sep 17 00:00:00 2001
From: reinaortega <miguelangel.reinaortega@etsi.org>
Date: Thu, 23 Jan 2020 14:42:16 +0100
Subject: [PATCH] Fix #87

Signed-off-by: reinaortega <miguelangel.reinaortega@etsi.org>
---
 LibOneM2M/OneM2M_Functions.ttcn | 62 +++++++++++++++++++++++++++++++--
 LibOneM2M/OneM2M_Templates.ttcn |  2 +-
 LibOneM2M/OneM2M_Types.ttcn     |  2 +-
 3 files changed, 62 insertions(+), 4 deletions(-)

diff --git a/LibOneM2M/OneM2M_Functions.ttcn b/LibOneM2M/OneM2M_Functions.ttcn
index 518a2eb..3880922 100644
--- a/LibOneM2M/OneM2M_Functions.ttcn
+++ b/LibOneM2M/OneM2M_Functions.ttcn
@@ -4492,6 +4492,58 @@ module OneM2M_Functions {
 				if(ispresent(p_primitiveContent.remoteCSE.nodeLink)){
 					v_primitiveContent.remoteCSE.nodeLink := ?;			    
 				}
+			}
+			else if(ischosen(p_primitiveContent.timeSeries)){ // timeSeries
+				v_primitiveContent := {timeSeries := mw_contentTimeSeriesBase};
+				
+				if(ispresent(p_primitiveContent.timeSeries.labels)){
+					v_primitiveContent.timeSeries.labels := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.accessControlPolicyIDs)){
+					v_primitiveContent.timeSeries.accessControlPolicyIDs := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.announceTo)){
+					v_primitiveContent.timeSeries.announceTo := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.announcedAttribute)){
+					v_primitiveContent.timeSeries.announcedAttribute := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.creator)){
+					v_primitiveContent.timeSeries.creator := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.maxNrOfInstances)){
+					v_primitiveContent.timeSeries.maxNrOfInstances := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.maxByteSize)){
+					v_primitiveContent.timeSeries.maxByteSize := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.maxInstanceAge)){
+					v_primitiveContent.timeSeries.maxInstanceAge := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.periodicInterval)){
+					v_primitiveContent.timeSeries.periodicInterval := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.missingDataDetect)){
+					v_primitiveContent.timeSeries.missingDataDetect := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.missingDataMaxNr)){
+					v_primitiveContent.timeSeries.missingDataMaxNr := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.missingDataList)){
+					v_primitiveContent.timeSeries.missingDataList := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.missingDataCurrentNr)){
+					v_primitiveContent.timeSeries.missingDataCurrentNr := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.missingDataDetectTimer)){
+					v_primitiveContent.timeSeries.missingDataDetectTimer := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.ontologyRef)){
+					v_primitiveContent.timeSeries.ontologyRef := ?;
+				}
+				if(ispresent(p_primitiveContent.timeSeries.contentInfo)){
+					v_primitiveContent.timeSeries.contentInfo := ?;
+				}
 			}			
 			return v_primitiveContent;
 		}
@@ -4577,8 +4629,14 @@ module OneM2M_Functions {
 				if(ispresent(p_request.primitiveContent.contentInstance.creator)) {
 					p_request.primitiveContent.contentInstance.creator := f_getCreator(p_parentIndex);
 				}
-			}
-
+			} else if(p_resourceType == int29){//timeSeries
+				if(ispresent(p_request.primitiveContent.timeSeries.accessControlPolicyIDs)) {
+					if((match(valueof(p_request.primitiveContent.timeSeries.accessControlPolicyIDs), v_defaultAcpIDs )) and (isbound(vc_acpAuxIndex))){
+						p_request.primitiveContent.timeSeries.accessControlPolicyIDs := {f_getResourceId(vc_resourcesList[vc_acpAuxIndex].resource)};
+					}	
+				} 
+			} 
+		
 			return valueof(p_request);
 		}
 		
diff --git a/LibOneM2M/OneM2M_Templates.ttcn b/LibOneM2M/OneM2M_Templates.ttcn
index 60e03eb..876ec06 100644
--- a/LibOneM2M/OneM2M_Templates.ttcn
+++ b/LibOneM2M/OneM2M_Templates.ttcn
@@ -6752,7 +6752,7 @@ module OneM2M_Templates {
 			dynamicAuthorizationConsultationIDs := *,//O
 			announceTo := *,//O
 			announcedAttribute := *,//O
-			creator := ?,//M
+			creator := *,//O TODO XSD should be changed to optional for creator in TimeSeries
 			maxNrOfInstances := *,//O
 			maxByteSize := *,//O
 			maxInstanceAge := *,//O
diff --git a/LibOneM2M/OneM2M_Types.ttcn b/LibOneM2M/OneM2M_Types.ttcn
index 68e40eb..4d5df9c 100644
--- a/LibOneM2M/OneM2M_Types.ttcn
+++ b/LibOneM2M/OneM2M_Types.ttcn
@@ -8024,7 +8024,7 @@ type record TimeSeries
 	ListOfURIs dynamicAuthorizationConsultationIDs optional,
 	ListOfURIs announceTo optional,
 	record length(1 .. infinity) of XSD.NCName announcedAttribute optional,
-	XSD.ID creator,
+	XSD.ID creator optional,//TODO XSD to be changed to make it optional
 	XSD.NonNegativeInteger maxNrOfInstances optional,
 	XSD.NonNegativeInteger maxByteSize optional,
 	XSD.NonNegativeInteger maxInstanceAge optional,
-- 
GitLab