plc4go/protocols/bacnetip/readwrite/model/BACnetConfirmedServiceRequest.go (691 lines of code) (raw):
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package model
import (
"context"
"fmt"
"github.com/pkg/errors"
"github.com/rs/zerolog"
. "github.com/apache/plc4x/plc4go/spi/codegen/fields"
. "github.com/apache/plc4x/plc4go/spi/codegen/io"
"github.com/apache/plc4x/plc4go/spi/utils"
)
// Code generated by code-generation. DO NOT EDIT.
// BACnetConfirmedServiceRequest is the corresponding interface of BACnetConfirmedServiceRequest
type BACnetConfirmedServiceRequest interface {
BACnetConfirmedServiceRequestContract
BACnetConfirmedServiceRequestRequirements
fmt.Stringer
utils.LengthAware
utils.Serializable
utils.Copyable
// IsBACnetConfirmedServiceRequest is a marker method to prevent unintentional type checks (interfaces of same signature)
IsBACnetConfirmedServiceRequest()
// CreateBuilder creates a BACnetConfirmedServiceRequestBuilder
CreateBACnetConfirmedServiceRequestBuilder() BACnetConfirmedServiceRequestBuilder
}
// BACnetConfirmedServiceRequestContract provides a set of functions which can be overwritten by a sub struct
type BACnetConfirmedServiceRequestContract interface {
// GetServiceRequestPayloadLength returns ServiceRequestPayloadLength (virtual field)
GetServiceRequestPayloadLength() uint32
// GetServiceRequestLength() returns a parser argument
GetServiceRequestLength() uint32
// IsBACnetConfirmedServiceRequest is a marker method to prevent unintentional type checks (interfaces of same signature)
IsBACnetConfirmedServiceRequest()
// CreateBuilder creates a BACnetConfirmedServiceRequestBuilder
CreateBACnetConfirmedServiceRequestBuilder() BACnetConfirmedServiceRequestBuilder
}
// BACnetConfirmedServiceRequestRequirements provides a set of functions which need to be implemented by a sub struct
type BACnetConfirmedServiceRequestRequirements interface {
GetLengthInBits(ctx context.Context) uint16
GetLengthInBytes(ctx context.Context) uint16
// GetServiceChoice returns ServiceChoice (discriminator field)
GetServiceChoice() BACnetConfirmedServiceChoice
}
// _BACnetConfirmedServiceRequest is the data-structure of this message
type _BACnetConfirmedServiceRequest struct {
_SubType interface {
BACnetConfirmedServiceRequestContract
BACnetConfirmedServiceRequestRequirements
}
// Arguments.
ServiceRequestLength uint32
}
var _ BACnetConfirmedServiceRequestContract = (*_BACnetConfirmedServiceRequest)(nil)
// NewBACnetConfirmedServiceRequest factory function for _BACnetConfirmedServiceRequest
func NewBACnetConfirmedServiceRequest(serviceRequestLength uint32) *_BACnetConfirmedServiceRequest {
return &_BACnetConfirmedServiceRequest{ServiceRequestLength: serviceRequestLength}
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Builder
///////////////////////
// BACnetConfirmedServiceRequestBuilder is a builder for BACnetConfirmedServiceRequest
type BACnetConfirmedServiceRequestBuilder interface {
utils.Copyable
// WithMandatoryFields adds all mandatory fields (convenience for using multiple builder calls)
WithMandatoryFields() BACnetConfirmedServiceRequestBuilder
// WithArgServiceRequestLength sets a parser argument
WithArgServiceRequestLength(uint32) BACnetConfirmedServiceRequestBuilder
// AsBACnetConfirmedServiceRequestAcknowledgeAlarm converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestAcknowledgeAlarm() BACnetConfirmedServiceRequestAcknowledgeAlarmBuilder
// AsBACnetConfirmedServiceRequestConfirmedCOVNotification converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestConfirmedCOVNotification() BACnetConfirmedServiceRequestConfirmedCOVNotificationBuilder
// AsBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple() BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleBuilder
// AsBACnetConfirmedServiceRequestConfirmedEventNotification converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestConfirmedEventNotification() BACnetConfirmedServiceRequestConfirmedEventNotificationBuilder
// AsBACnetConfirmedServiceRequestGetEnrollmentSummary converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestGetEnrollmentSummary() BACnetConfirmedServiceRequestGetEnrollmentSummaryBuilder
// AsBACnetConfirmedServiceRequestGetEventInformation converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestGetEventInformation() BACnetConfirmedServiceRequestGetEventInformationBuilder
// AsBACnetConfirmedServiceRequestLifeSafetyOperation converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestLifeSafetyOperation() BACnetConfirmedServiceRequestLifeSafetyOperationBuilder
// AsBACnetConfirmedServiceRequestSubscribeCOV converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestSubscribeCOV() BACnetConfirmedServiceRequestSubscribeCOVBuilder
// AsBACnetConfirmedServiceRequestSubscribeCOVProperty converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestSubscribeCOVProperty() BACnetConfirmedServiceRequestSubscribeCOVPropertyBuilder
// AsBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple() BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleBuilder
// AsBACnetConfirmedServiceRequestAtomicReadFile converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestAtomicReadFile() BACnetConfirmedServiceRequestAtomicReadFileBuilder
// AsBACnetConfirmedServiceRequestAtomicWriteFile converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestAtomicWriteFile() BACnetConfirmedServiceRequestAtomicWriteFileBuilder
// AsBACnetConfirmedServiceRequestAddListElement converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestAddListElement() BACnetConfirmedServiceRequestAddListElementBuilder
// AsBACnetConfirmedServiceRequestRemoveListElement converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestRemoveListElement() BACnetConfirmedServiceRequestRemoveListElementBuilder
// AsBACnetConfirmedServiceRequestCreateObject converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestCreateObject() BACnetConfirmedServiceRequestCreateObjectBuilder
// AsBACnetConfirmedServiceRequestDeleteObject converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestDeleteObject() BACnetConfirmedServiceRequestDeleteObjectBuilder
// AsBACnetConfirmedServiceRequestReadProperty converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestReadProperty() BACnetConfirmedServiceRequestReadPropertyBuilder
// AsBACnetConfirmedServiceRequestReadPropertyMultiple converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestReadPropertyMultiple() BACnetConfirmedServiceRequestReadPropertyMultipleBuilder
// AsBACnetConfirmedServiceRequestReadRange converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestReadRange() BACnetConfirmedServiceRequestReadRangeBuilder
// AsBACnetConfirmedServiceRequestWriteProperty converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestWriteProperty() BACnetConfirmedServiceRequestWritePropertyBuilder
// AsBACnetConfirmedServiceRequestWritePropertyMultiple converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestWritePropertyMultiple() BACnetConfirmedServiceRequestWritePropertyMultipleBuilder
// AsBACnetConfirmedServiceRequestDeviceCommunicationControl converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestDeviceCommunicationControl() BACnetConfirmedServiceRequestDeviceCommunicationControlBuilder
// AsBACnetConfirmedServiceRequestConfirmedPrivateTransfer converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestConfirmedPrivateTransfer() BACnetConfirmedServiceRequestConfirmedPrivateTransferBuilder
// AsBACnetConfirmedServiceRequestConfirmedTextMessage converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestConfirmedTextMessage() BACnetConfirmedServiceRequestConfirmedTextMessageBuilder
// AsBACnetConfirmedServiceRequestReinitializeDevice converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestReinitializeDevice() BACnetConfirmedServiceRequestReinitializeDeviceBuilder
// AsBACnetConfirmedServiceRequestVTOpen converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestVTOpen() BACnetConfirmedServiceRequestVTOpenBuilder
// AsBACnetConfirmedServiceRequestVTClose converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestVTClose() BACnetConfirmedServiceRequestVTCloseBuilder
// AsBACnetConfirmedServiceRequestVTData converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestVTData() BACnetConfirmedServiceRequestVTDataBuilder
// AsBACnetConfirmedServiceRequestAuthenticate converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestAuthenticate() BACnetConfirmedServiceRequestAuthenticateBuilder
// AsBACnetConfirmedServiceRequestRequestKey converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestRequestKey() BACnetConfirmedServiceRequestRequestKeyBuilder
// AsBACnetConfirmedServiceRequestReadPropertyConditional converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestReadPropertyConditional() BACnetConfirmedServiceRequestReadPropertyConditionalBuilder
// AsBACnetConfirmedServiceRequestUnknown converts this build to a subType of BACnetConfirmedServiceRequest. It is always possible to return to current builder using Done()
AsBACnetConfirmedServiceRequestUnknown() BACnetConfirmedServiceRequestUnknownBuilder
// Build builds the BACnetConfirmedServiceRequest or returns an error if something is wrong
PartialBuild() (BACnetConfirmedServiceRequestContract, error)
// MustBuild does the same as Build but panics on error
PartialMustBuild() BACnetConfirmedServiceRequestContract
// Build builds the BACnetConfirmedServiceRequest or returns an error if something is wrong
Build() (BACnetConfirmedServiceRequest, error)
// MustBuild does the same as Build but panics on error
MustBuild() BACnetConfirmedServiceRequest
}
// NewBACnetConfirmedServiceRequestBuilder() creates a BACnetConfirmedServiceRequestBuilder
func NewBACnetConfirmedServiceRequestBuilder() BACnetConfirmedServiceRequestBuilder {
return &_BACnetConfirmedServiceRequestBuilder{_BACnetConfirmedServiceRequest: new(_BACnetConfirmedServiceRequest)}
}
type _BACnetConfirmedServiceRequestChildBuilder interface {
utils.Copyable
setParent(BACnetConfirmedServiceRequestContract)
buildForBACnetConfirmedServiceRequest() (BACnetConfirmedServiceRequest, error)
}
type _BACnetConfirmedServiceRequestBuilder struct {
*_BACnetConfirmedServiceRequest
childBuilder _BACnetConfirmedServiceRequestChildBuilder
err *utils.MultiError
}
var _ (BACnetConfirmedServiceRequestBuilder) = (*_BACnetConfirmedServiceRequestBuilder)(nil)
func (b *_BACnetConfirmedServiceRequestBuilder) WithMandatoryFields() BACnetConfirmedServiceRequestBuilder {
return b
}
func (b *_BACnetConfirmedServiceRequestBuilder) WithArgServiceRequestLength(serviceRequestLength uint32) BACnetConfirmedServiceRequestBuilder {
b.ServiceRequestLength = serviceRequestLength
return b
}
func (b *_BACnetConfirmedServiceRequestBuilder) PartialBuild() (BACnetConfirmedServiceRequestContract, error) {
if b.err != nil {
return nil, errors.Wrap(b.err, "error occurred during build")
}
return b._BACnetConfirmedServiceRequest.deepCopy(), nil
}
func (b *_BACnetConfirmedServiceRequestBuilder) PartialMustBuild() BACnetConfirmedServiceRequestContract {
build, err := b.PartialBuild()
if err != nil {
panic(err)
}
return build
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestAcknowledgeAlarm() BACnetConfirmedServiceRequestAcknowledgeAlarmBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestAcknowledgeAlarmBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestAcknowledgeAlarmBuilder().(*_BACnetConfirmedServiceRequestAcknowledgeAlarmBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestConfirmedCOVNotification() BACnetConfirmedServiceRequestConfirmedCOVNotificationBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestConfirmedCOVNotificationBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestConfirmedCOVNotificationBuilder().(*_BACnetConfirmedServiceRequestConfirmedCOVNotificationBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple() BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleBuilder().(*_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultipleBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestConfirmedEventNotification() BACnetConfirmedServiceRequestConfirmedEventNotificationBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestConfirmedEventNotificationBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestConfirmedEventNotificationBuilder().(*_BACnetConfirmedServiceRequestConfirmedEventNotificationBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestGetEnrollmentSummary() BACnetConfirmedServiceRequestGetEnrollmentSummaryBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestGetEnrollmentSummaryBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestGetEnrollmentSummaryBuilder().(*_BACnetConfirmedServiceRequestGetEnrollmentSummaryBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestGetEventInformation() BACnetConfirmedServiceRequestGetEventInformationBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestGetEventInformationBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestGetEventInformationBuilder().(*_BACnetConfirmedServiceRequestGetEventInformationBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestLifeSafetyOperation() BACnetConfirmedServiceRequestLifeSafetyOperationBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestLifeSafetyOperationBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestLifeSafetyOperationBuilder().(*_BACnetConfirmedServiceRequestLifeSafetyOperationBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestSubscribeCOV() BACnetConfirmedServiceRequestSubscribeCOVBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestSubscribeCOVBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestSubscribeCOVBuilder().(*_BACnetConfirmedServiceRequestSubscribeCOVBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestSubscribeCOVProperty() BACnetConfirmedServiceRequestSubscribeCOVPropertyBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestSubscribeCOVPropertyBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestSubscribeCOVPropertyBuilder().(*_BACnetConfirmedServiceRequestSubscribeCOVPropertyBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple() BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleBuilder().(*_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultipleBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestAtomicReadFile() BACnetConfirmedServiceRequestAtomicReadFileBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestAtomicReadFileBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestAtomicReadFileBuilder().(*_BACnetConfirmedServiceRequestAtomicReadFileBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestAtomicWriteFile() BACnetConfirmedServiceRequestAtomicWriteFileBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestAtomicWriteFileBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestAtomicWriteFileBuilder().(*_BACnetConfirmedServiceRequestAtomicWriteFileBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestAddListElement() BACnetConfirmedServiceRequestAddListElementBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestAddListElementBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestAddListElementBuilder().(*_BACnetConfirmedServiceRequestAddListElementBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestRemoveListElement() BACnetConfirmedServiceRequestRemoveListElementBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestRemoveListElementBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestRemoveListElementBuilder().(*_BACnetConfirmedServiceRequestRemoveListElementBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestCreateObject() BACnetConfirmedServiceRequestCreateObjectBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestCreateObjectBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestCreateObjectBuilder().(*_BACnetConfirmedServiceRequestCreateObjectBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestDeleteObject() BACnetConfirmedServiceRequestDeleteObjectBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestDeleteObjectBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestDeleteObjectBuilder().(*_BACnetConfirmedServiceRequestDeleteObjectBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestReadProperty() BACnetConfirmedServiceRequestReadPropertyBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestReadPropertyBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestReadPropertyBuilder().(*_BACnetConfirmedServiceRequestReadPropertyBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestReadPropertyMultiple() BACnetConfirmedServiceRequestReadPropertyMultipleBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestReadPropertyMultipleBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestReadPropertyMultipleBuilder().(*_BACnetConfirmedServiceRequestReadPropertyMultipleBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestReadRange() BACnetConfirmedServiceRequestReadRangeBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestReadRangeBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestReadRangeBuilder().(*_BACnetConfirmedServiceRequestReadRangeBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestWriteProperty() BACnetConfirmedServiceRequestWritePropertyBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestWritePropertyBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestWritePropertyBuilder().(*_BACnetConfirmedServiceRequestWritePropertyBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestWritePropertyMultiple() BACnetConfirmedServiceRequestWritePropertyMultipleBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestWritePropertyMultipleBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestWritePropertyMultipleBuilder().(*_BACnetConfirmedServiceRequestWritePropertyMultipleBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestDeviceCommunicationControl() BACnetConfirmedServiceRequestDeviceCommunicationControlBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestDeviceCommunicationControlBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestDeviceCommunicationControlBuilder().(*_BACnetConfirmedServiceRequestDeviceCommunicationControlBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestConfirmedPrivateTransfer() BACnetConfirmedServiceRequestConfirmedPrivateTransferBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestConfirmedPrivateTransferBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestConfirmedPrivateTransferBuilder().(*_BACnetConfirmedServiceRequestConfirmedPrivateTransferBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestConfirmedTextMessage() BACnetConfirmedServiceRequestConfirmedTextMessageBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestConfirmedTextMessageBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestConfirmedTextMessageBuilder().(*_BACnetConfirmedServiceRequestConfirmedTextMessageBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestReinitializeDevice() BACnetConfirmedServiceRequestReinitializeDeviceBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestReinitializeDeviceBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestReinitializeDeviceBuilder().(*_BACnetConfirmedServiceRequestReinitializeDeviceBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestVTOpen() BACnetConfirmedServiceRequestVTOpenBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestVTOpenBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestVTOpenBuilder().(*_BACnetConfirmedServiceRequestVTOpenBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestVTClose() BACnetConfirmedServiceRequestVTCloseBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestVTCloseBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestVTCloseBuilder().(*_BACnetConfirmedServiceRequestVTCloseBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestVTData() BACnetConfirmedServiceRequestVTDataBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestVTDataBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestVTDataBuilder().(*_BACnetConfirmedServiceRequestVTDataBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestAuthenticate() BACnetConfirmedServiceRequestAuthenticateBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestAuthenticateBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestAuthenticateBuilder().(*_BACnetConfirmedServiceRequestAuthenticateBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestRequestKey() BACnetConfirmedServiceRequestRequestKeyBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestRequestKeyBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestRequestKeyBuilder().(*_BACnetConfirmedServiceRequestRequestKeyBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestReadPropertyConditional() BACnetConfirmedServiceRequestReadPropertyConditionalBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestReadPropertyConditionalBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestReadPropertyConditionalBuilder().(*_BACnetConfirmedServiceRequestReadPropertyConditionalBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) AsBACnetConfirmedServiceRequestUnknown() BACnetConfirmedServiceRequestUnknownBuilder {
if cb, ok := b.childBuilder.(BACnetConfirmedServiceRequestUnknownBuilder); ok {
return cb
}
cb := NewBACnetConfirmedServiceRequestUnknownBuilder().(*_BACnetConfirmedServiceRequestUnknownBuilder)
cb.parentBuilder = b
b.childBuilder = cb
return cb
}
func (b *_BACnetConfirmedServiceRequestBuilder) Build() (BACnetConfirmedServiceRequest, error) {
v, err := b.PartialBuild()
if err != nil {
return nil, errors.Wrap(err, "error occurred during partial build")
}
if b.childBuilder == nil {
return nil, errors.New("no child builder present")
}
b.childBuilder.setParent(v)
return b.childBuilder.buildForBACnetConfirmedServiceRequest()
}
func (b *_BACnetConfirmedServiceRequestBuilder) MustBuild() BACnetConfirmedServiceRequest {
build, err := b.Build()
if err != nil {
panic(err)
}
return build
}
func (b *_BACnetConfirmedServiceRequestBuilder) DeepCopy() any {
_copy := b.CreateBACnetConfirmedServiceRequestBuilder().(*_BACnetConfirmedServiceRequestBuilder)
_copy.childBuilder = b.childBuilder.DeepCopy().(_BACnetConfirmedServiceRequestChildBuilder)
_copy.childBuilder.setParent(_copy)
if b.err != nil {
_copy.err = b.err.DeepCopy().(*utils.MultiError)
}
return _copy
}
// CreateBACnetConfirmedServiceRequestBuilder creates a BACnetConfirmedServiceRequestBuilder
func (b *_BACnetConfirmedServiceRequest) CreateBACnetConfirmedServiceRequestBuilder() BACnetConfirmedServiceRequestBuilder {
if b == nil {
return NewBACnetConfirmedServiceRequestBuilder()
}
return &_BACnetConfirmedServiceRequestBuilder{_BACnetConfirmedServiceRequest: b.deepCopy()}
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Accessors for virtual fields.
///////////////////////
func (pm *_BACnetConfirmedServiceRequest) GetServiceRequestPayloadLength() uint32 {
m := pm._SubType
ctx := context.Background()
_ = ctx
return uint32(utils.InlineIf((bool((m.GetServiceRequestLength()) > (0))), func() any { return uint32((uint32(m.GetServiceRequestLength()) - uint32(uint32(1)))) }, func() any { return uint32(uint32(0)) }).(uint32))
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Deprecated: use the interface for direct cast
func CastBACnetConfirmedServiceRequest(structType any) BACnetConfirmedServiceRequest {
if casted, ok := structType.(BACnetConfirmedServiceRequest); ok {
return casted
}
if casted, ok := structType.(*BACnetConfirmedServiceRequest); ok {
return *casted
}
return nil
}
func (m *_BACnetConfirmedServiceRequest) GetTypeName() string {
return "BACnetConfirmedServiceRequest"
}
func (m *_BACnetConfirmedServiceRequest) getLengthInBits(ctx context.Context) uint16 {
lengthInBits := uint16(0)
// Discriminator Field (serviceChoice)
lengthInBits += 8
// A virtual field doesn't have any in- or output.
return lengthInBits
}
func (m *_BACnetConfirmedServiceRequest) GetLengthInBits(ctx context.Context) uint16 {
return m._SubType.GetLengthInBits(ctx)
}
func (m *_BACnetConfirmedServiceRequest) GetLengthInBytes(ctx context.Context) uint16 {
return m._SubType.GetLengthInBits(ctx) / 8
}
func BACnetConfirmedServiceRequestParse[T BACnetConfirmedServiceRequest](ctx context.Context, theBytes []byte, serviceRequestLength uint32) (T, error) {
return BACnetConfirmedServiceRequestParseWithBuffer[T](ctx, utils.NewReadBufferByteBased(theBytes), serviceRequestLength)
}
func BACnetConfirmedServiceRequestParseWithBufferProducer[T BACnetConfirmedServiceRequest](serviceRequestLength uint32) func(ctx context.Context, readBuffer utils.ReadBuffer) (T, error) {
return func(ctx context.Context, readBuffer utils.ReadBuffer) (T, error) {
v, err := BACnetConfirmedServiceRequestParseWithBuffer[T](ctx, readBuffer, serviceRequestLength)
if err != nil {
var zero T
return zero, err
}
return v, nil
}
}
func BACnetConfirmedServiceRequestParseWithBuffer[T BACnetConfirmedServiceRequest](ctx context.Context, readBuffer utils.ReadBuffer, serviceRequestLength uint32) (T, error) {
v, err := (&_BACnetConfirmedServiceRequest{ServiceRequestLength: serviceRequestLength}).parse(ctx, readBuffer, serviceRequestLength)
if err != nil {
var zero T
return zero, err
}
vc, ok := v.(T)
if !ok {
var zero T
return zero, errors.Errorf("Unexpected type %T. Expected type %T", v, *new(T))
}
return vc, nil
}
func (m *_BACnetConfirmedServiceRequest) parse(ctx context.Context, readBuffer utils.ReadBuffer, serviceRequestLength uint32) (__bACnetConfirmedServiceRequest BACnetConfirmedServiceRequest, err error) {
positionAware := readBuffer
_ = positionAware
if pullErr := readBuffer.PullContext("BACnetConfirmedServiceRequest"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for BACnetConfirmedServiceRequest")
}
currentPos := positionAware.GetPos()
_ = currentPos
serviceChoice, err := ReadDiscriminatorEnumField[BACnetConfirmedServiceChoice](ctx, "serviceChoice", "BACnetConfirmedServiceChoice", ReadEnum(BACnetConfirmedServiceChoiceByValue, ReadUnsignedByte(readBuffer, uint8(8))))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'serviceChoice' field"))
}
serviceRequestPayloadLength, err := ReadVirtualField[uint32](ctx, "serviceRequestPayloadLength", (*uint32)(nil), utils.InlineIf((bool((serviceRequestLength) > (0))), func() any { return uint32((uint32(serviceRequestLength) - uint32(uint32(1)))) }, func() any { return uint32(uint32(0)) }).(uint32))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'serviceRequestPayloadLength' field"))
}
_ = serviceRequestPayloadLength
// Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
var _child BACnetConfirmedServiceRequest
switch {
case serviceChoice == BACnetConfirmedServiceChoice_ACKNOWLEDGE_ALARM: // BACnetConfirmedServiceRequestAcknowledgeAlarm
if _child, err = new(_BACnetConfirmedServiceRequestAcknowledgeAlarm).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestAcknowledgeAlarm for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION: // BACnetConfirmedServiceRequestConfirmedCOVNotification
if _child, err = new(_BACnetConfirmedServiceRequestConfirmedCOVNotification).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestConfirmedCOVNotification for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CONFIRMED_COV_NOTIFICATION_MULTIPLE: // BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple
if _child, err = new(_BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestConfirmedCOVNotificationMultiple for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CONFIRMED_EVENT_NOTIFICATION: // BACnetConfirmedServiceRequestConfirmedEventNotification
if _child, err = new(_BACnetConfirmedServiceRequestConfirmedEventNotification).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestConfirmedEventNotification for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_GET_ENROLLMENT_SUMMARY: // BACnetConfirmedServiceRequestGetEnrollmentSummary
if _child, err = new(_BACnetConfirmedServiceRequestGetEnrollmentSummary).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestGetEnrollmentSummary for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_GET_EVENT_INFORMATION: // BACnetConfirmedServiceRequestGetEventInformation
if _child, err = new(_BACnetConfirmedServiceRequestGetEventInformation).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestGetEventInformation for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_LIFE_SAFETY_OPERATION: // BACnetConfirmedServiceRequestLifeSafetyOperation
if _child, err = new(_BACnetConfirmedServiceRequestLifeSafetyOperation).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestLifeSafetyOperation for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_SUBSCRIBE_COV: // BACnetConfirmedServiceRequestSubscribeCOV
if _child, err = new(_BACnetConfirmedServiceRequestSubscribeCOV).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestSubscribeCOV for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY: // BACnetConfirmedServiceRequestSubscribeCOVProperty
if _child, err = new(_BACnetConfirmedServiceRequestSubscribeCOVProperty).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestSubscribeCOVProperty for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_SUBSCRIBE_COV_PROPERTY_MULTIPLE: // BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple
if _child, err = new(_BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestSubscribeCOVPropertyMultiple for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_ATOMIC_READ_FILE: // BACnetConfirmedServiceRequestAtomicReadFile
if _child, err = new(_BACnetConfirmedServiceRequestAtomicReadFile).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestAtomicReadFile for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_ATOMIC_WRITE_FILE: // BACnetConfirmedServiceRequestAtomicWriteFile
if _child, err = new(_BACnetConfirmedServiceRequestAtomicWriteFile).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestAtomicWriteFile for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_ADD_LIST_ELEMENT: // BACnetConfirmedServiceRequestAddListElement
if _child, err = new(_BACnetConfirmedServiceRequestAddListElement).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestAddListElement for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_REMOVE_LIST_ELEMENT: // BACnetConfirmedServiceRequestRemoveListElement
if _child, err = new(_BACnetConfirmedServiceRequestRemoveListElement).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestRemoveListElement for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CREATE_OBJECT: // BACnetConfirmedServiceRequestCreateObject
if _child, err = new(_BACnetConfirmedServiceRequestCreateObject).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestCreateObject for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_DELETE_OBJECT: // BACnetConfirmedServiceRequestDeleteObject
if _child, err = new(_BACnetConfirmedServiceRequestDeleteObject).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestDeleteObject for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_READ_PROPERTY: // BACnetConfirmedServiceRequestReadProperty
if _child, err = new(_BACnetConfirmedServiceRequestReadProperty).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestReadProperty for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_READ_PROPERTY_MULTIPLE: // BACnetConfirmedServiceRequestReadPropertyMultiple
if _child, err = new(_BACnetConfirmedServiceRequestReadPropertyMultiple).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestReadPropertyMultiple for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_READ_RANGE: // BACnetConfirmedServiceRequestReadRange
if _child, err = new(_BACnetConfirmedServiceRequestReadRange).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestReadRange for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_WRITE_PROPERTY: // BACnetConfirmedServiceRequestWriteProperty
if _child, err = new(_BACnetConfirmedServiceRequestWriteProperty).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestWriteProperty for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_WRITE_PROPERTY_MULTIPLE: // BACnetConfirmedServiceRequestWritePropertyMultiple
if _child, err = new(_BACnetConfirmedServiceRequestWritePropertyMultiple).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestWritePropertyMultiple for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_DEVICE_COMMUNICATION_CONTROL: // BACnetConfirmedServiceRequestDeviceCommunicationControl
if _child, err = new(_BACnetConfirmedServiceRequestDeviceCommunicationControl).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestDeviceCommunicationControl for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CONFIRMED_PRIVATE_TRANSFER: // BACnetConfirmedServiceRequestConfirmedPrivateTransfer
if _child, err = new(_BACnetConfirmedServiceRequestConfirmedPrivateTransfer).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestConfirmedPrivateTransfer for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_CONFIRMED_TEXT_MESSAGE: // BACnetConfirmedServiceRequestConfirmedTextMessage
if _child, err = new(_BACnetConfirmedServiceRequestConfirmedTextMessage).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestConfirmedTextMessage for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_REINITIALIZE_DEVICE: // BACnetConfirmedServiceRequestReinitializeDevice
if _child, err = new(_BACnetConfirmedServiceRequestReinitializeDevice).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestReinitializeDevice for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_VT_OPEN: // BACnetConfirmedServiceRequestVTOpen
if _child, err = new(_BACnetConfirmedServiceRequestVTOpen).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestVTOpen for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_VT_CLOSE: // BACnetConfirmedServiceRequestVTClose
if _child, err = new(_BACnetConfirmedServiceRequestVTClose).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestVTClose for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_VT_DATA: // BACnetConfirmedServiceRequestVTData
if _child, err = new(_BACnetConfirmedServiceRequestVTData).parse(ctx, readBuffer, m, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestVTData for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_AUTHENTICATE: // BACnetConfirmedServiceRequestAuthenticate
if _child, err = new(_BACnetConfirmedServiceRequestAuthenticate).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestAuthenticate for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_REQUEST_KEY: // BACnetConfirmedServiceRequestRequestKey
if _child, err = new(_BACnetConfirmedServiceRequestRequestKey).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestRequestKey for type-switch of BACnetConfirmedServiceRequest")
}
case serviceChoice == BACnetConfirmedServiceChoice_READ_PROPERTY_CONDITIONAL: // BACnetConfirmedServiceRequestReadPropertyConditional
if _child, err = new(_BACnetConfirmedServiceRequestReadPropertyConditional).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestReadPropertyConditional for type-switch of BACnetConfirmedServiceRequest")
}
case 0 == 0: // BACnetConfirmedServiceRequestUnknown
if _child, err = new(_BACnetConfirmedServiceRequestUnknown).parse(ctx, readBuffer, m, serviceRequestPayloadLength, serviceRequestLength); err != nil {
return nil, errors.Wrap(err, "Error parsing sub-type BACnetConfirmedServiceRequestUnknown for type-switch of BACnetConfirmedServiceRequest")
}
default:
return nil, errors.Errorf("Unmapped type for parameters [serviceChoice=%v]", serviceChoice)
}
if closeErr := readBuffer.CloseContext("BACnetConfirmedServiceRequest"); closeErr != nil {
return nil, errors.Wrap(closeErr, "Error closing for BACnetConfirmedServiceRequest")
}
return _child, nil
}
func (pm *_BACnetConfirmedServiceRequest) serializeParent(ctx context.Context, writeBuffer utils.WriteBuffer, child BACnetConfirmedServiceRequest, serializeChildFunction func() error) error {
// We redirect all calls through client as some methods are only implemented there
m := child
_ = m
positionAware := writeBuffer
_ = positionAware
log := zerolog.Ctx(ctx)
_ = log
if pushErr := writeBuffer.PushContext("BACnetConfirmedServiceRequest"); pushErr != nil {
return errors.Wrap(pushErr, "Error pushing for BACnetConfirmedServiceRequest")
}
if err := WriteDiscriminatorEnumField(ctx, "serviceChoice", "BACnetConfirmedServiceChoice", m.GetServiceChoice(), WriteEnum[BACnetConfirmedServiceChoice, uint8](BACnetConfirmedServiceChoice.GetValue, BACnetConfirmedServiceChoice.PLC4XEnumName, WriteUnsignedByte(writeBuffer, 8))); err != nil {
return errors.Wrap(err, "Error serializing 'serviceChoice' field")
}
// Virtual field
serviceRequestPayloadLength := m.GetServiceRequestPayloadLength()
_ = serviceRequestPayloadLength
if _serviceRequestPayloadLengthErr := writeBuffer.WriteVirtual(ctx, "serviceRequestPayloadLength", m.GetServiceRequestPayloadLength()); _serviceRequestPayloadLengthErr != nil {
return errors.Wrap(_serviceRequestPayloadLengthErr, "Error serializing 'serviceRequestPayloadLength' field")
}
// Switch field (Depending on the discriminator values, passes the serialization to a sub-type)
if _typeSwitchErr := serializeChildFunction(); _typeSwitchErr != nil {
return errors.Wrap(_typeSwitchErr, "Error serializing sub-type field")
}
if popErr := writeBuffer.PopContext("BACnetConfirmedServiceRequest"); popErr != nil {
return errors.Wrap(popErr, "Error popping for BACnetConfirmedServiceRequest")
}
return nil
}
////
// Arguments Getter
func (m *_BACnetConfirmedServiceRequest) GetServiceRequestLength() uint32 {
return m.ServiceRequestLength
}
//
////
func (m *_BACnetConfirmedServiceRequest) IsBACnetConfirmedServiceRequest() {}
func (m *_BACnetConfirmedServiceRequest) DeepCopy() any {
return m.deepCopy()
}
func (m *_BACnetConfirmedServiceRequest) deepCopy() *_BACnetConfirmedServiceRequest {
if m == nil {
return nil
}
_BACnetConfirmedServiceRequestCopy := &_BACnetConfirmedServiceRequest{
nil, // will be set by child
m.ServiceRequestLength,
}
return _BACnetConfirmedServiceRequestCopy
}