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.")