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

commit 547d005883dbd27d7ed552d748e1ba2ac0b8006a
Author: Sebastian Rühl <sru...@apache.org>
AuthorDate: Tue Apr 13 15:53:49 2021 +0200

    plc4go: return error on unmapped type to avoid-nil panic
---
 .../src/main/resources/templates/go/model-template.go.ftlh            | 4 ++++
 go.mod                                                                | 2 +-
 go.sum                                                                | 2 ++
 plc4go/internal/plc4go/ads/readwrite/model/AdsData.go                 | 3 +++
 plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go     | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go               | 3 +++
 .../plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go      | 3 +++
 .../plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go  | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go        | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go   | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go          | 3 +++
 .../bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go       | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go               | 3 +++
 plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go                | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go               | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go        | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go           | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go        | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go               | 3 +++
 .../plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go      | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go     | 3 +++
 .../plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go   | 3 +++
 .../plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go    | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go    | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go    | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go         | 3 +++
 plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go          | 3 +++
 plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go            | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go               | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go            | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7Address.go                | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7Message.go                | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go              | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go  | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go                | 3 +++
 plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go    | 3 +++
 .../internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go   | 3 +++
 37 files changed, 109 insertions(+), 1 deletion(-)

diff --git 
a/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
 
b/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
index 89257e2..25e6424 100644
--- 
a/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
+++ 
b/build-utils/language-go/src/main/resources/templates/go/model-template.go.ftlh
@@ -652,9 +652,13 @@ func ${type.name}Parse(io *utils.ReadBuffer<#if 
type.parserArguments?has_content
        var typeSwitchError error
        switch {
                                <#list switchField.cases as case>
+                                       <#--TODO: refactor the line below into 
multiple assigns -->
     <#if case.discriminatorValues?has_content>case <#list 
case.discriminatorValues as discriminatorValue><#if 
helper.isComplexTypeReference(helper.getDiscriminatorTypes()[helper.toParseExpression(null,
 switchField.discriminatorExpressions[discriminatorValue?index], 
type.parserArguments)])><#if 
helper.isEnumTypeReference(helper.getDiscriminatorTypes()[helper.toParseExpression(null,
 switchField.discriminatorExpressions[discriminatorValue?index], 
type.parserArguments)])>*</#if></#if>${helpe [...]
                _parent, typeSwitchError = ${case.name}Parse(io<#if 
case.parserArguments?has_content>, <#list case.parserArguments as 
parserArgument><#if 
helper.isOptionalField(helper.getFieldForNameFromCurrentOrParent(parserArgument.name))>*</#if>${parserArgument.name}<#sep>,
 </#sep></#list></#if>)
                                </#list>
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")<@emitImport 
import="github.com/pkg/errors" />
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")<@emitImport import="github.com/pkg/errors" />
diff --git a/go.mod b/go.mod
index 187e6d5..70cb9c6 100644
--- a/go.mod
+++ b/go.mod
@@ -21,6 +21,6 @@ module github.com/apache/plc4x
 go 1.15
 
 require (
-       github.com/apache/plc4x/plc4go v0.0.0-20210413105005-6b422943429b // 
indirect
+       github.com/apache/plc4x/plc4go v0.0.0-20210413122240-033cc1993c68 // 
indirect
        github.com/sirupsen/logrus v1.7.0 // indirect
 )
diff --git a/go.sum b/go.sum
index 40f9683..b608e66 100644
--- a/go.sum
+++ b/go.sum
@@ -50,6 +50,8 @@ github.com/apache/plc4x/plc4go 
v0.0.0-20210413084758-912060472f7c h1:Fqsxkvf1e1A
 github.com/apache/plc4x/plc4go v0.0.0-20210413084758-912060472f7c/go.mod 
h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
 github.com/apache/plc4x/plc4go v0.0.0-20210413105005-6b422943429b 
h1:6pA7ZDNdRv7voWAzWzjIWcQKb8VReTP0dLFqNZuOdCI=
 github.com/apache/plc4x/plc4go v0.0.0-20210413105005-6b422943429b/go.mod 
h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
+github.com/apache/plc4x/plc4go v0.0.0-20210413122240-033cc1993c68 
h1:A5M/IvZuG59tSEIoBzuLc21a76wYe9Hcie6jmKpEVxQ=
+github.com/apache/plc4x/plc4go v0.0.0-20210413122240-033cc1993c68/go.mod 
h1:NfO8uGKPGwDxn1GqOb4oNhAtPF7St1A9LRk1J/qSlWU=
 github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod 
h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/dnephin/pflag v1.0.7/go.mod 
h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE=
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go 
b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
index 04aca75..67e1210 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsData.go
@@ -137,6 +137,9 @@ func AdsDataParse(io *utils.ReadBuffer, commandId 
*CommandId, response bool) (*A
                _parent, typeSwitchError = AdsReadWriteRequestParse(io)
        case *commandId == CommandId_ADS_READ_WRITE && response == true: // 
AdsReadWriteResponse
                _parent, typeSwitchError = AdsReadWriteResponseParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go 
b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
index 300ca48..7c02330 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsMultiRequestItem.go
@@ -102,6 +102,9 @@ func AdsMultiRequestItemParse(io *utils.ReadBuffer, 
indexGroup uint32) (*AdsMult
                _parent, typeSwitchError = AdsMultiRequestItemWriteParse(io)
        case indexGroup == 61570: // AdsMultiRequestItemReadWrite
                _parent, typeSwitchError = AdsMultiRequestItemReadWriteParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
index 991905d..420edbc 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDU.go
@@ -120,6 +120,9 @@ func APDUParse(io *utils.ReadBuffer, apduLength uint16) 
(*APDU, error) {
                _parent, typeSwitchError = APDURejectParse(io)
        case apduType == 0x7: // APDUAbort
                _parent, typeSwitchError = APDUAbortParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
index 637c1cb..5ffe85a 100644
--- 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
+++ 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceACK.go
@@ -132,6 +132,9 @@ func BACnetConfirmedServiceACKParse(io *utils.ReadBuffer) 
(*BACnetConfirmedServi
                _parent, typeSwitchError = 
BACnetConfirmedServiceACKRemovedAuthenticateParse(io)
        case serviceChoice == 0x0D: // 
BACnetConfirmedServiceACKRemovedReadPropertyConditional
                _parent, typeSwitchError = 
BACnetConfirmedServiceACKRemovedReadPropertyConditionalParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
index 1dc3f39..4034bd8 100644
--- 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
+++ 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go
@@ -166,6 +166,9 @@ func BACnetConfirmedServiceRequestParse(io 
*utils.ReadBuffer, len uint16) (*BACn
                _parent, typeSwitchError = 
BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleParse(io)
        case serviceChoice == 0x1F: // 
BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple
                _parent, typeSwitchError = 
BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
index 3bf8439..b65383e 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetError.go
@@ -132,6 +132,9 @@ func BACnetErrorParse(io *utils.ReadBuffer) (*BACnetError, 
error) {
                _parent, typeSwitchError = 
BACnetErrorRemovedAuthenticateParse(io)
        case serviceChoice == 0x0D: // BACnetErrorRemovedReadPropertyConditional
                _parent, typeSwitchError = 
BACnetErrorRemovedReadPropertyConditionalParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
index ee97e88..9363c94 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetServiceAck.go
@@ -132,6 +132,9 @@ func BACnetServiceAckParse(io *utils.ReadBuffer) 
(*BACnetServiceAck, error) {
                _parent, typeSwitchError = 
BACnetServiceAckRemovedAuthenticateParse(io)
        case serviceChoice == 0x0D: // 
BACnetServiceAckRemovedReadPropertyConditional
                _parent, typeSwitchError = 
BACnetServiceAckRemovedReadPropertyConditionalParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index d7d1457..ffbf528 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -184,6 +184,9 @@ func BACnetTagParse(io *utils.ReadBuffer) (*BACnetTag, 
error) {
                _parent, typeSwitchError = 
BACnetTagApplicationObjectIdentifierParse(io)
        case contextSpecificTag == 1: // BACnetTagContext
                _parent, typeSwitchError = BACnetTagContextParse(io, 
typeOrTagNumber, *extTagNumber, lengthValueType, *extLength)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
index 054551f..da0ddb1 100644
--- 
a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
+++ 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetUnconfirmedServiceRequest.go
@@ -128,6 +128,9 @@ func BACnetUnconfirmedServiceRequestParse(io 
*utils.ReadBuffer, len uint16) (*BA
                _parent, typeSwitchError = 
BACnetUnconfirmedServiceRequestWriteGroupParse(io)
        case serviceChoice == 0x0B: // 
BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultiple
                _parent, typeSwitchError = 
BACnetUnconfirmedServiceRequestUnconfirmedCOVNotificationMultipleParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
index b21674f..a052559 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLC.go
@@ -156,6 +156,9 @@ func BVLCParse(io *utils.ReadBuffer) (*BVLC, error) {
                _parent, typeSwitchError = BVLCOriginalBroadcastNPDUParse(io, 
bvlcLength)
        case bvlcFunction == 0x0C: // BVLCSecureBVLL
                _parent, typeSwitchError = BVLCSecureBVLLParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go 
b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
index fd8249b..75d83e0 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
@@ -124,6 +124,9 @@ func NLMParse(io *utils.ReadBuffer, apduLength uint16) 
(*NLM, error) {
                _parent, typeSwitchError = NLMWhoIsRouterToNetworkParse(io, 
apduLength, messageType)
        case messageType == 0x1: // NLMIAmRouterToNetwork
                _parent, typeSwitchError = NLMIAmRouterToNetworkParse(io, 
apduLength, messageType)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
index 6b3aca4..a883108 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/Apdu.go
@@ -128,6 +128,9 @@ func ApduParse(io *utils.ReadBuffer, dataLength uint8) 
(*Apdu, error) {
                _parent, typeSwitchError = ApduControlContainerParse(io)
        case control == 0: // ApduDataContainer
                _parent, typeSwitchError = ApduDataContainerParse(io, 
dataLength)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
index ea207c3..c906131 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduControl.go
@@ -112,6 +112,9 @@ func ApduControlParse(io *utils.ReadBuffer) (*ApduControl, 
error) {
                _parent, typeSwitchError = ApduControlAckParse(io)
        case controlType == 0x3: // ApduControlNack
                _parent, typeSwitchError = ApduControlNackParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
index 3f160aa..502f563 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduData.go
@@ -136,6 +136,9 @@ func ApduDataParse(io *utils.ReadBuffer, dataLength uint8) 
(*ApduData, error) {
                _parent, typeSwitchError = ApduDataRestartParse(io)
        case apciType == 0xF: // ApduDataOther
                _parent, typeSwitchError = ApduDataOtherParse(io, dataLength)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
index 927cd7b..9736181 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ApduDataExt.go
@@ -186,6 +186,9 @@ func ApduDataExtParse(io *utils.ReadBuffer, length uint8) 
(*ApduDataExt, error)
                _parent, typeSwitchError = 
ApduDataExtDomainAddressSerialNumberWriteParse(io)
        case extApciType == 0x30: // ApduDataExtFileStreamInfoReport
                _parent, typeSwitchError = 
ApduDataExtFileStreamInfoReportParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
index 8307461..0bfe580 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMI.go
@@ -150,6 +150,9 @@ func CEMIParse(io *utils.ReadBuffer, size uint8) (*CEMI, 
error) {
                _parent, typeSwitchError = MResetReqParse(io)
        case messageCode == 0xF0: // MResetInd
                _parent, typeSwitchError = MResetIndParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
index d6b3e11..1652623 100644
--- 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
+++ 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformation.go
@@ -108,6 +108,9 @@ func CEMIAdditionalInformationParse(io *utils.ReadBuffer) 
(*CEMIAdditionalInform
                _parent, typeSwitchError = 
CEMIAdditionalInformationBusmonitorInfoParse(io)
        case additionalInformationType == 0x04: // 
CEMIAdditionalInformationRelativeTimestamp
                _parent, typeSwitchError = 
CEMIAdditionalInformationRelativeTimestampParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
index c24d846..6b39c8e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTable.go
@@ -102,6 +102,9 @@ func ComObjectTableParse(io *utils.ReadBuffer, firmwareType 
*FirmwareType) (*Com
                _parent, typeSwitchError = 
ComObjectTableRealisationType2Parse(io)
        case *firmwareType == FirmwareType_SYSTEM_300: // 
ComObjectTableRealisationType6
                _parent, typeSwitchError = 
ComObjectTableRealisationType6Parse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
index 3430d1e..6016459 100644
--- 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
+++ 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequestInformation.go
@@ -118,6 +118,9 @@ func ConnectionRequestInformationParse(io 
*utils.ReadBuffer) (*ConnectionRequest
                _parent, typeSwitchError = 
ConnectionRequestInformationDeviceManagementParse(io)
        case connectionType == 0x04: // 
ConnectionRequestInformationTunnelConnection
                _parent, typeSwitchError = 
ConnectionRequestInformationTunnelConnectionParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
index 843bf38..a06a404 100644
--- 
a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
+++ 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlock.go
@@ -118,6 +118,9 @@ func ConnectionResponseDataBlockParse(io *utils.ReadBuffer) 
(*ConnectionResponse
                _parent, typeSwitchError = 
ConnectionResponseDataBlockDeviceManagementParse(io)
        case connectionType == 0x04: // 
ConnectionResponseDataBlockTunnelConnection
                _parent, typeSwitchError = 
ConnectionResponseDataBlockTunnelConnectionParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
index ea86719..c4636d2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxGroupAddress.go
@@ -102,6 +102,9 @@ func KnxGroupAddressParse(io *utils.ReadBuffer, numLevels 
uint8) (*KnxGroupAddre
                _parent, typeSwitchError = KnxGroupAddress2LevelParse(io)
        case numLevels == 3: // KnxGroupAddress3Level
                _parent, typeSwitchError = KnxGroupAddress3LevelParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
index 0350d58..d036b5d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxNetIpMessage.go
@@ -172,6 +172,9 @@ func KnxNetIpMessageParse(io *utils.ReadBuffer) 
(*KnxNetIpMessage, error) {
                _parent, typeSwitchError = TunnelingResponseParse(io)
        case msgType == 0x0530: // RoutingIndication
                _parent, typeSwitchError = RoutingIndicationParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
index 34f8364..91cd7e4 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataFrame.go
@@ -169,6 +169,9 @@ func LDataFrameParse(io *utils.ReadBuffer) (*LDataFrame, 
error) {
                _parent, typeSwitchError = LPollDataParse(io)
        case notAckFrame == false: // LDataFrameACK
                _parent, typeSwitchError = LDataFrameACKParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go 
b/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
index 01086c7..56b5396 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ServiceId.go
@@ -118,6 +118,9 @@ func ServiceIdParse(io *utils.ReadBuffer) (*ServiceId, 
error) {
                _parent, typeSwitchError = 
KnxNetRemoteConfigurationAndDiagnosisParse(io)
        case serviceType == 0x08: // KnxNetObjectServer
                _parent, typeSwitchError = KnxNetObjectServerParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go 
b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
index cb1c62f..240593f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusPDU.go
@@ -192,6 +192,9 @@ func ModbusPDUParse(io *utils.ReadBuffer, response bool) 
(*ModbusPDU, error) {
                _parent, typeSwitchError = 
ModbusPDUReadDeviceIdentificationRequestParse(io)
        case errorFlag == false && functionFlag == 0x2B && response == true: // 
ModbusPDUReadDeviceIdentificationResponse
                _parent, typeSwitchError = 
ModbusPDUReadDeviceIdentificationResponseParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go 
b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
index fe91f69..1ccc083 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPPacket.go
@@ -142,6 +142,9 @@ func COTPPacketParse(io *utils.ReadBuffer, cotpLen uint16) 
(*COTPPacket, error)
                _parent, typeSwitchError = COTPPacketDisconnectResponseParse(io)
        case tpduCode == 0x70: // COTPPacketTpduError
                _parent, typeSwitchError = COTPPacketTpduErrorParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go 
b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
index f5e03f9..b9e7b65 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPParameter.go
@@ -124,6 +124,9 @@ func COTPParameterParse(io *utils.ReadBuffer, rest uint8) 
(*COTPParameter, error
                _parent, typeSwitchError = COTPParameterChecksumParse(io)
        case parameterType == 0xE0: // 
COTPParameterDisconnectAdditionalInformation
                _parent, typeSwitchError = 
COTPParameterDisconnectAdditionalInformationParse(io, rest)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
index 7802e25..26ba1b0 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7Address.go
@@ -106,6 +106,9 @@ func S7AddressParse(io *utils.ReadBuffer) (*S7Address, 
error) {
        switch {
        case addressType == 0x10: // S7AddressAny
                _parent, typeSwitchError = S7AddressAnyParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
index 16df927..b52eafd 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7Message.go
@@ -188,6 +188,9 @@ func S7MessageParse(io *utils.ReadBuffer) (*S7Message, 
error) {
                _parent, typeSwitchError = S7MessageResponseDataParse(io)
        case messageType == 0x07: // S7MessageUserData
                _parent, typeSwitchError = S7MessageUserDataParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
index 8e16e9f..1258385 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7Parameter.go
@@ -117,6 +117,9 @@ func S7ParameterParse(io *utils.ReadBuffer, messageType 
uint8) (*S7Parameter, er
                _parent, typeSwitchError = S7ParameterWriteVarResponseParse(io)
        case parameterType == 0x00 && messageType == 0x07: // 
S7ParameterUserData
                _parent, typeSwitchError = S7ParameterUserDataParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
index 24f46a4..ae7cd75 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItem.go
@@ -106,6 +106,9 @@ func S7ParameterUserDataItemParse(io *utils.ReadBuffer) 
(*S7ParameterUserDataIte
        switch {
        case itemType == 0x12: // S7ParameterUserDataItemCPUFunctions
                _parent, typeSwitchError = 
S7ParameterUserDataItemCPUFunctionsParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
index 38f5e47..80ec599 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7Payload.go
@@ -105,6 +105,9 @@ func S7PayloadParse(io *utils.ReadBuffer, messageType 
uint8, parameter *S7Parame
                _parent, typeSwitchError = S7PayloadWriteVarResponseParse(io, 
parameter)
        case CastS7Parameter(parameter).Child.ParameterType() == 0x00 && 
messageType == 0x07: // S7PayloadUserData
                _parent, typeSwitchError = S7PayloadUserDataParse(io, parameter)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
index d5f3872..2c6410e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
@@ -150,6 +150,9 @@ func S7PayloadUserDataItemParse(io *utils.ReadBuffer, 
cpuFunctionType uint8) (*S
                _parent, typeSwitchError = 
S7PayloadUserDataItemCpuFunctionReadSzlRequestParse(io)
        case cpuFunctionType == 0x08: // 
S7PayloadUserDataItemCpuFunctionReadSzlResponse
                _parent, typeSwitchError = 
S7PayloadUserDataItemCpuFunctionReadSzlResponseParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")
diff --git 
a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go 
b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
index 5875305..de16d1b 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7VarRequestParameterItem.go
@@ -106,6 +106,9 @@ func S7VarRequestParameterItemParse(io *utils.ReadBuffer) 
(*S7VarRequestParamete
        switch {
        case itemType == 0x12: // S7VarRequestParameterItemAddress
                _parent, typeSwitchError = 
S7VarRequestParameterItemAddressParse(io)
+       default:
+               // TODO: return actual type
+               typeSwitchError = errors.New("Unmapped type")
        }
        if typeSwitchError != nil {
                return nil, errors.Wrap(typeSwitchError, "Error parsing 
sub-type for type-switch.")

Reply via email to