You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2022/03/07 12:04:05 UTC

[plc4x] branch develop updated: fix(plc4go/codegen): work on time support

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new e91f634  fix(plc4go/codegen): work on time support
e91f634 is described below

commit e91f634277bde92364aa0fca1e6212d9df446844
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Mon Mar 7 13:02:26 2022 +0100

    fix(plc4go/codegen): work on time support
---
 .../language/go/GoLanguageTemplateHelper.java      | 29 ++++++++++++++++------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
index 8d7b9e9..6a2e77a 100644
--- a/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
+++ b/code-generation/language-go/src/main/java/org/apache/plc4x/language/go/GoLanguageTemplateHelper.java
@@ -156,13 +156,13 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
             case VSTRING:
                 return "string";
             case TIME:
-                return "Time";
             case DATE:
-                return "Date";
             case DATETIME:
-                return "Date";
+                emitRequiredImport("time");
+                return "time.Time";
+            default:
+                throw new RuntimeException("Unsupported simple type");
         }
-        throw new RuntimeException("Unsupported simple type");
     }
 
     public String getPlcValueTypeForTypeReference(TypeReference typeReference) {
@@ -229,8 +229,9 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 return "values.NewPlcDATE";
             case DATETIME:
                 return "values.NewPlcDATE_AND_TIME";
+            default:
+                throw new FreemarkerException("Unsupported simple type" + simpleTypeReference.getBaseType());
         }
-        throw new FreemarkerException("Unsupported simple type" + simpleTypeReference.getBaseType());
     }
 
     @Override
@@ -358,8 +359,15 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 String lengthExpression = toExpression(field, field.getType(), vstringTypeReference.getLengthExpression(), null, null, false, false);
                 return "readBuffer.ReadString(\"" + logicalName + "\", uint32(" + lengthExpression + "))";
             }
+            case TIME:
+                return "readBuffer.ReadTime(\"" + logicalName + "\")";
+            case DATE:
+                return "readBuffer.ReadDate(\"" + logicalName + "\")";
+            case DATETIME:
+                return "readBuffer.ReadDateTime(\"" + logicalName + "\")";
+            default:
+                throw new FreemarkerException("Unsupported base type" + simpleTypeReference.getBaseType());
         }
-        throw new FreemarkerException("Unsupported base type" + simpleTypeReference.getBaseType());
     }
 
     @Override
@@ -458,8 +466,15 @@ public class GoLanguageTemplateHelper extends BaseFreemarkerLanguageTemplateHelp
                 return "writeBuffer.WriteString(\"" + logicalName + "\", uint32(" + lengthExpression + "), \"" +
                     encoding + "\", " + fieldName + writerArgsString + ")";
             }
+            case DATE:
+                return "writeBuffer.WriteDate(\"" + logicalName + "\"" + fieldName + writerArgsString + ")";
+            case TIME:
+                return "writeBuffer.WriteTime(\"" + logicalName + "\"" + fieldName + writerArgsString + ")";
+            case DATETIME:
+                return "writeBuffer.WriteDateTime(\"" + logicalName + "\"" + fieldName + writerArgsString + ")";
+            default:
+                throw new FreemarkerException("Unsupported base type" + simpleTypeReference.getBaseType());
         }
-        throw new FreemarkerException("Unsupported base type" + simpleTypeReference.getBaseType());
     }
 
     public String getReservedValue(ReservedField reservedField) {