plc4go/protocols/bacnetip/readwrite/model/BACnetPriorityArray.go (598 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. // BACnetPriorityArray is the corresponding interface of BACnetPriorityArray type BACnetPriorityArray interface { fmt.Stringer utils.LengthAware utils.Serializable utils.Copyable // GetNumberOfDataElements returns NumberOfDataElements (property field) GetNumberOfDataElements() BACnetApplicationTagUnsignedInteger // GetData returns Data (property field) GetData() []BACnetPriorityValue // GetZero returns Zero (virtual field) GetZero() uint64 // GetPriorityValue01 returns PriorityValue01 (virtual field) GetPriorityValue01() BACnetPriorityValue // GetPriorityValue02 returns PriorityValue02 (virtual field) GetPriorityValue02() BACnetPriorityValue // GetPriorityValue03 returns PriorityValue03 (virtual field) GetPriorityValue03() BACnetPriorityValue // GetPriorityValue04 returns PriorityValue04 (virtual field) GetPriorityValue04() BACnetPriorityValue // GetPriorityValue05 returns PriorityValue05 (virtual field) GetPriorityValue05() BACnetPriorityValue // GetPriorityValue06 returns PriorityValue06 (virtual field) GetPriorityValue06() BACnetPriorityValue // GetPriorityValue07 returns PriorityValue07 (virtual field) GetPriorityValue07() BACnetPriorityValue // GetPriorityValue08 returns PriorityValue08 (virtual field) GetPriorityValue08() BACnetPriorityValue // GetPriorityValue09 returns PriorityValue09 (virtual field) GetPriorityValue09() BACnetPriorityValue // GetPriorityValue10 returns PriorityValue10 (virtual field) GetPriorityValue10() BACnetPriorityValue // GetPriorityValue11 returns PriorityValue11 (virtual field) GetPriorityValue11() BACnetPriorityValue // GetPriorityValue12 returns PriorityValue12 (virtual field) GetPriorityValue12() BACnetPriorityValue // GetPriorityValue13 returns PriorityValue13 (virtual field) GetPriorityValue13() BACnetPriorityValue // GetPriorityValue14 returns PriorityValue14 (virtual field) GetPriorityValue14() BACnetPriorityValue // GetPriorityValue15 returns PriorityValue15 (virtual field) GetPriorityValue15() BACnetPriorityValue // GetPriorityValue16 returns PriorityValue16 (virtual field) GetPriorityValue16() BACnetPriorityValue // GetIsIndexedAccess returns IsIndexedAccess (virtual field) GetIsIndexedAccess() bool // GetIndexEntry returns IndexEntry (virtual field) GetIndexEntry() BACnetPriorityValue // IsBACnetPriorityArray is a marker method to prevent unintentional type checks (interfaces of same signature) IsBACnetPriorityArray() // CreateBuilder creates a BACnetPriorityArrayBuilder CreateBACnetPriorityArrayBuilder() BACnetPriorityArrayBuilder } // _BACnetPriorityArray is the data-structure of this message type _BACnetPriorityArray struct { NumberOfDataElements BACnetApplicationTagUnsignedInteger Data []BACnetPriorityValue // Arguments. ObjectTypeArgument BACnetObjectType TagNumber uint8 ArrayIndexArgument BACnetTagPayloadUnsignedInteger } var _ BACnetPriorityArray = (*_BACnetPriorityArray)(nil) // NewBACnetPriorityArray factory function for _BACnetPriorityArray func NewBACnetPriorityArray(numberOfDataElements BACnetApplicationTagUnsignedInteger, data []BACnetPriorityValue, objectTypeArgument BACnetObjectType, tagNumber uint8, arrayIndexArgument BACnetTagPayloadUnsignedInteger) *_BACnetPriorityArray { return &_BACnetPriorityArray{NumberOfDataElements: numberOfDataElements, Data: data, ObjectTypeArgument: objectTypeArgument, TagNumber: tagNumber, ArrayIndexArgument: arrayIndexArgument} } /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////// Builder /////////////////////// // BACnetPriorityArrayBuilder is a builder for BACnetPriorityArray type BACnetPriorityArrayBuilder interface { utils.Copyable // WithMandatoryFields adds all mandatory fields (convenience for using multiple builder calls) WithMandatoryFields(data []BACnetPriorityValue) BACnetPriorityArrayBuilder // WithNumberOfDataElements adds NumberOfDataElements (property field) WithOptionalNumberOfDataElements(BACnetApplicationTagUnsignedInteger) BACnetPriorityArrayBuilder // WithOptionalNumberOfDataElementsBuilder adds NumberOfDataElements (property field) which is build by the builder WithOptionalNumberOfDataElementsBuilder(func(BACnetApplicationTagUnsignedIntegerBuilder) BACnetApplicationTagUnsignedIntegerBuilder) BACnetPriorityArrayBuilder // WithData adds Data (property field) WithData(...BACnetPriorityValue) BACnetPriorityArrayBuilder // WithArgObjectTypeArgument sets a parser argument WithArgObjectTypeArgument(BACnetObjectType) BACnetPriorityArrayBuilder // WithArgTagNumber sets a parser argument WithArgTagNumber(uint8) BACnetPriorityArrayBuilder // WithArgArrayIndexArgument sets a parser argument WithArgArrayIndexArgument(BACnetTagPayloadUnsignedInteger) BACnetPriorityArrayBuilder // Build builds the BACnetPriorityArray or returns an error if something is wrong Build() (BACnetPriorityArray, error) // MustBuild does the same as Build but panics on error MustBuild() BACnetPriorityArray } // NewBACnetPriorityArrayBuilder() creates a BACnetPriorityArrayBuilder func NewBACnetPriorityArrayBuilder() BACnetPriorityArrayBuilder { return &_BACnetPriorityArrayBuilder{_BACnetPriorityArray: new(_BACnetPriorityArray)} } type _BACnetPriorityArrayBuilder struct { *_BACnetPriorityArray err *utils.MultiError } var _ (BACnetPriorityArrayBuilder) = (*_BACnetPriorityArrayBuilder)(nil) func (b *_BACnetPriorityArrayBuilder) WithMandatoryFields(data []BACnetPriorityValue) BACnetPriorityArrayBuilder { return b.WithData(data...) } func (b *_BACnetPriorityArrayBuilder) WithOptionalNumberOfDataElements(numberOfDataElements BACnetApplicationTagUnsignedInteger) BACnetPriorityArrayBuilder { b.NumberOfDataElements = numberOfDataElements return b } func (b *_BACnetPriorityArrayBuilder) WithOptionalNumberOfDataElementsBuilder(builderSupplier func(BACnetApplicationTagUnsignedIntegerBuilder) BACnetApplicationTagUnsignedIntegerBuilder) BACnetPriorityArrayBuilder { builder := builderSupplier(b.NumberOfDataElements.CreateBACnetApplicationTagUnsignedIntegerBuilder()) var err error b.NumberOfDataElements, err = builder.Build() if err != nil { if b.err == nil { b.err = &utils.MultiError{MainError: errors.New("sub builder failed")} } b.err.Append(errors.Wrap(err, "BACnetApplicationTagUnsignedIntegerBuilder failed")) } return b } func (b *_BACnetPriorityArrayBuilder) WithData(data ...BACnetPriorityValue) BACnetPriorityArrayBuilder { b.Data = data return b } func (b *_BACnetPriorityArrayBuilder) WithArgObjectTypeArgument(objectTypeArgument BACnetObjectType) BACnetPriorityArrayBuilder { b.ObjectTypeArgument = objectTypeArgument return b } func (b *_BACnetPriorityArrayBuilder) WithArgTagNumber(tagNumber uint8) BACnetPriorityArrayBuilder { b.TagNumber = tagNumber return b } func (b *_BACnetPriorityArrayBuilder) WithArgArrayIndexArgument(arrayIndexArgument BACnetTagPayloadUnsignedInteger) BACnetPriorityArrayBuilder { b.ArrayIndexArgument = arrayIndexArgument return b } func (b *_BACnetPriorityArrayBuilder) Build() (BACnetPriorityArray, error) { if b.err != nil { return nil, errors.Wrap(b.err, "error occurred during build") } return b._BACnetPriorityArray.deepCopy(), nil } func (b *_BACnetPriorityArrayBuilder) MustBuild() BACnetPriorityArray { build, err := b.Build() if err != nil { panic(err) } return build } func (b *_BACnetPriorityArrayBuilder) DeepCopy() any { _copy := b.CreateBACnetPriorityArrayBuilder().(*_BACnetPriorityArrayBuilder) if b.err != nil { _copy.err = b.err.DeepCopy().(*utils.MultiError) } return _copy } // CreateBACnetPriorityArrayBuilder creates a BACnetPriorityArrayBuilder func (b *_BACnetPriorityArray) CreateBACnetPriorityArrayBuilder() BACnetPriorityArrayBuilder { if b == nil { return NewBACnetPriorityArrayBuilder() } return &_BACnetPriorityArrayBuilder{_BACnetPriorityArray: b.deepCopy()} } /////////////////////// /////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////// Accessors for property fields. /////////////////////// func (m *_BACnetPriorityArray) GetNumberOfDataElements() BACnetApplicationTagUnsignedInteger { return m.NumberOfDataElements } func (m *_BACnetPriorityArray) GetData() []BACnetPriorityValue { return m.Data } /////////////////////// /////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// /////////////////////// Accessors for virtual fields. /////////////////////// func (m *_BACnetPriorityArray) GetZero() uint64 { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return uint64(uint64(0)) } func (m *_BACnetPriorityArray) GetPriorityValue01() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (0)), func() any { return CastBACnetPriorityValue(m.GetData()[0]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue02() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (1)), func() any { return CastBACnetPriorityValue(m.GetData()[1]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue03() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (2)), func() any { return CastBACnetPriorityValue(m.GetData()[2]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue04() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (3)), func() any { return CastBACnetPriorityValue(m.GetData()[3]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue05() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (4)), func() any { return CastBACnetPriorityValue(m.GetData()[4]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue06() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (5)), func() any { return CastBACnetPriorityValue(m.GetData()[5]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue07() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (6)), func() any { return CastBACnetPriorityValue(m.GetData()[6]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue08() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (7)), func() any { return CastBACnetPriorityValue(m.GetData()[7]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue09() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (8)), func() any { return CastBACnetPriorityValue(m.GetData()[8]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue10() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (9)), func() any { return CastBACnetPriorityValue(m.GetData()[9]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue11() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (10)), func() any { return CastBACnetPriorityValue(m.GetData()[10]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue12() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (11)), func() any { return CastBACnetPriorityValue(m.GetData()[11]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue13() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (12)), func() any { return CastBACnetPriorityValue(m.GetData()[12]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue14() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (13)), func() any { return CastBACnetPriorityValue(m.GetData()[13]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue15() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (14)), func() any { return CastBACnetPriorityValue(m.GetData()[14]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetPriorityValue16() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(CastBACnetPriorityValue(utils.InlineIf(bool((len(m.GetData())) > (15)), func() any { return CastBACnetPriorityValue(m.GetData()[15]) }, func() any { return CastBACnetPriorityValue(nil) }))) } func (m *_BACnetPriorityArray) GetIsIndexedAccess() bool { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return bool(bool((len(m.GetData())) == (1))) } func (m *_BACnetPriorityArray) GetIndexEntry() BACnetPriorityValue { ctx := context.Background() _ = ctx numberOfDataElements := m.GetNumberOfDataElements() _ = numberOfDataElements return CastBACnetPriorityValue(m.GetPriorityValue01()) } /////////////////////// /////////////////////// /////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////// // Deprecated: use the interface for direct cast func CastBACnetPriorityArray(structType any) BACnetPriorityArray { if casted, ok := structType.(BACnetPriorityArray); ok { return casted } if casted, ok := structType.(*BACnetPriorityArray); ok { return *casted } return nil } func (m *_BACnetPriorityArray) GetTypeName() string { return "BACnetPriorityArray" } func (m *_BACnetPriorityArray) GetLengthInBits(ctx context.Context) uint16 { lengthInBits := uint16(0) // A virtual field doesn't have any in- or output. // Optional Field (numberOfDataElements) if m.NumberOfDataElements != nil { lengthInBits += m.NumberOfDataElements.GetLengthInBits(ctx) } // Array field if len(m.Data) > 0 { for _, element := range m.Data { lengthInBits += element.GetLengthInBits(ctx) } } // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. // A virtual field doesn't have any in- or output. return lengthInBits } func (m *_BACnetPriorityArray) GetLengthInBytes(ctx context.Context) uint16 { return m.GetLengthInBits(ctx) / 8 } func BACnetPriorityArrayParse(ctx context.Context, theBytes []byte, objectTypeArgument BACnetObjectType, tagNumber uint8, arrayIndexArgument BACnetTagPayloadUnsignedInteger) (BACnetPriorityArray, error) { return BACnetPriorityArrayParseWithBuffer(ctx, utils.NewReadBufferByteBased(theBytes), objectTypeArgument, tagNumber, arrayIndexArgument) } func BACnetPriorityArrayParseWithBufferProducer(objectTypeArgument BACnetObjectType, tagNumber uint8, arrayIndexArgument BACnetTagPayloadUnsignedInteger) func(ctx context.Context, readBuffer utils.ReadBuffer) (BACnetPriorityArray, error) { return func(ctx context.Context, readBuffer utils.ReadBuffer) (BACnetPriorityArray, error) { return BACnetPriorityArrayParseWithBuffer(ctx, readBuffer, objectTypeArgument, tagNumber, arrayIndexArgument) } } func BACnetPriorityArrayParseWithBuffer(ctx context.Context, readBuffer utils.ReadBuffer, objectTypeArgument BACnetObjectType, tagNumber uint8, arrayIndexArgument BACnetTagPayloadUnsignedInteger) (BACnetPriorityArray, error) { v, err := (&_BACnetPriorityArray{ObjectTypeArgument: objectTypeArgument, TagNumber: tagNumber, ArrayIndexArgument: arrayIndexArgument}).parse(ctx, readBuffer, objectTypeArgument, tagNumber, arrayIndexArgument) if err != nil { return nil, err } return v, nil } func (m *_BACnetPriorityArray) parse(ctx context.Context, readBuffer utils.ReadBuffer, objectTypeArgument BACnetObjectType, tagNumber uint8, arrayIndexArgument BACnetTagPayloadUnsignedInteger) (__bACnetPriorityArray BACnetPriorityArray, err error) { positionAware := readBuffer _ = positionAware if pullErr := readBuffer.PullContext("BACnetPriorityArray"); pullErr != nil { return nil, errors.Wrap(pullErr, "Error pulling for BACnetPriorityArray") } currentPos := positionAware.GetPos() _ = currentPos zero, err := ReadVirtualField[uint64](ctx, "zero", (*uint64)(nil), uint64(0)) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'zero' field")) } _ = zero var numberOfDataElements BACnetApplicationTagUnsignedInteger _numberOfDataElements, err := ReadOptionalField[BACnetApplicationTagUnsignedInteger](ctx, "numberOfDataElements", ReadComplex[BACnetApplicationTagUnsignedInteger](BACnetApplicationTagParseWithBufferProducer[BACnetApplicationTagUnsignedInteger](), readBuffer), bool(bool((arrayIndexArgument) != (nil))) && bool(bool((arrayIndexArgument.GetActualValue()) == (zero)))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'numberOfDataElements' field")) } if _numberOfDataElements != nil { numberOfDataElements = *_numberOfDataElements m.NumberOfDataElements = numberOfDataElements } data, err := ReadTerminatedArrayField[BACnetPriorityValue](ctx, "data", ReadComplex[BACnetPriorityValue](BACnetPriorityValueParseWithBufferProducer[BACnetPriorityValue]((BACnetObjectType)(objectTypeArgument)), readBuffer), IsBACnetConstructedDataClosingTag(ctx, readBuffer, false, tagNumber)) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'data' field")) } m.Data = data priorityValue01, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue01", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (0)), func() any { return CastBACnetPriorityValue(data[0]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue01' field")) } _ = priorityValue01 priorityValue02, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue02", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (1)), func() any { return CastBACnetPriorityValue(data[1]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue02' field")) } _ = priorityValue02 priorityValue03, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue03", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (2)), func() any { return CastBACnetPriorityValue(data[2]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue03' field")) } _ = priorityValue03 priorityValue04, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue04", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (3)), func() any { return CastBACnetPriorityValue(data[3]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue04' field")) } _ = priorityValue04 priorityValue05, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue05", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (4)), func() any { return CastBACnetPriorityValue(data[4]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue05' field")) } _ = priorityValue05 priorityValue06, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue06", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (5)), func() any { return CastBACnetPriorityValue(data[5]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue06' field")) } _ = priorityValue06 priorityValue07, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue07", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (6)), func() any { return CastBACnetPriorityValue(data[6]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue07' field")) } _ = priorityValue07 priorityValue08, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue08", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (7)), func() any { return CastBACnetPriorityValue(data[7]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue08' field")) } _ = priorityValue08 priorityValue09, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue09", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (8)), func() any { return CastBACnetPriorityValue(data[8]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue09' field")) } _ = priorityValue09 priorityValue10, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue10", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (9)), func() any { return CastBACnetPriorityValue(data[9]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue10' field")) } _ = priorityValue10 priorityValue11, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue11", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (10)), func() any { return CastBACnetPriorityValue(data[10]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue11' field")) } _ = priorityValue11 priorityValue12, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue12", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (11)), func() any { return CastBACnetPriorityValue(data[11]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue12' field")) } _ = priorityValue12 priorityValue13, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue13", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (12)), func() any { return CastBACnetPriorityValue(data[12]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue13' field")) } _ = priorityValue13 priorityValue14, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue14", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (13)), func() any { return CastBACnetPriorityValue(data[13]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue14' field")) } _ = priorityValue14 priorityValue15, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue15", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (14)), func() any { return CastBACnetPriorityValue(data[14]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue15' field")) } _ = priorityValue15 priorityValue16, err := ReadVirtualField[BACnetPriorityValue](ctx, "priorityValue16", (*BACnetPriorityValue)(nil), CastBACnetPriorityValue(utils.InlineIf(bool((len(data)) > (15)), func() any { return CastBACnetPriorityValue(data[15]) }, func() any { return CastBACnetPriorityValue(nil) }))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'priorityValue16' field")) } _ = priorityValue16 // Validation if !(bool(bool((arrayIndexArgument) != (nil))) || bool(bool((len(data)) == (16)))) { return nil, errors.WithStack(utils.ParseValidationError{Message: "Either indexed access or lenght 16 expected"}) } isIndexedAccess, err := ReadVirtualField[bool](ctx, "isIndexedAccess", (*bool)(nil), bool((len(data)) == (1))) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'isIndexedAccess' field")) } _ = isIndexedAccess indexEntry, err := ReadVirtualField[BACnetPriorityValue](ctx, "indexEntry", (*BACnetPriorityValue)(nil), priorityValue01) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'indexEntry' field")) } _ = indexEntry if closeErr := readBuffer.CloseContext("BACnetPriorityArray"); closeErr != nil { return nil, errors.Wrap(closeErr, "Error closing for BACnetPriorityArray") } return m, nil } func (m *_BACnetPriorityArray) Serialize() ([]byte, error) { wb := utils.NewWriteBufferByteBased(utils.WithInitialSizeForByteBasedBuffer(int(m.GetLengthInBytes(context.Background())))) if err := m.SerializeWithWriteBuffer(context.Background(), wb); err != nil { return nil, err } return wb.GetBytes(), nil } func (m *_BACnetPriorityArray) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error { positionAware := writeBuffer _ = positionAware log := zerolog.Ctx(ctx) _ = log if pushErr := writeBuffer.PushContext("BACnetPriorityArray"); pushErr != nil { return errors.Wrap(pushErr, "Error pushing for BACnetPriorityArray") } // Virtual field zero := m.GetZero() _ = zero if _zeroErr := writeBuffer.WriteVirtual(ctx, "zero", m.GetZero()); _zeroErr != nil { return errors.Wrap(_zeroErr, "Error serializing 'zero' field") } if err := WriteOptionalField[BACnetApplicationTagUnsignedInteger](ctx, "numberOfDataElements", GetRef(m.GetNumberOfDataElements()), WriteComplex[BACnetApplicationTagUnsignedInteger](writeBuffer), true); err != nil { return errors.Wrap(err, "Error serializing 'numberOfDataElements' field") } if err := WriteComplexTypeArrayField(ctx, "data", m.GetData(), writeBuffer); err != nil { return errors.Wrap(err, "Error serializing 'data' field") } // Virtual field priorityValue01 := m.GetPriorityValue01() _ = priorityValue01 if _priorityValue01Err := writeBuffer.WriteVirtual(ctx, "priorityValue01", m.GetPriorityValue01()); _priorityValue01Err != nil { return errors.Wrap(_priorityValue01Err, "Error serializing 'priorityValue01' field") } // Virtual field priorityValue02 := m.GetPriorityValue02() _ = priorityValue02 if _priorityValue02Err := writeBuffer.WriteVirtual(ctx, "priorityValue02", m.GetPriorityValue02()); _priorityValue02Err != nil { return errors.Wrap(_priorityValue02Err, "Error serializing 'priorityValue02' field") } // Virtual field priorityValue03 := m.GetPriorityValue03() _ = priorityValue03 if _priorityValue03Err := writeBuffer.WriteVirtual(ctx, "priorityValue03", m.GetPriorityValue03()); _priorityValue03Err != nil { return errors.Wrap(_priorityValue03Err, "Error serializing 'priorityValue03' field") } // Virtual field priorityValue04 := m.GetPriorityValue04() _ = priorityValue04 if _priorityValue04Err := writeBuffer.WriteVirtual(ctx, "priorityValue04", m.GetPriorityValue04()); _priorityValue04Err != nil { return errors.Wrap(_priorityValue04Err, "Error serializing 'priorityValue04' field") } // Virtual field priorityValue05 := m.GetPriorityValue05() _ = priorityValue05 if _priorityValue05Err := writeBuffer.WriteVirtual(ctx, "priorityValue05", m.GetPriorityValue05()); _priorityValue05Err != nil { return errors.Wrap(_priorityValue05Err, "Error serializing 'priorityValue05' field") } // Virtual field priorityValue06 := m.GetPriorityValue06() _ = priorityValue06 if _priorityValue06Err := writeBuffer.WriteVirtual(ctx, "priorityValue06", m.GetPriorityValue06()); _priorityValue06Err != nil { return errors.Wrap(_priorityValue06Err, "Error serializing 'priorityValue06' field") } // Virtual field priorityValue07 := m.GetPriorityValue07() _ = priorityValue07 if _priorityValue07Err := writeBuffer.WriteVirtual(ctx, "priorityValue07", m.GetPriorityValue07()); _priorityValue07Err != nil { return errors.Wrap(_priorityValue07Err, "Error serializing 'priorityValue07' field") } // Virtual field priorityValue08 := m.GetPriorityValue08() _ = priorityValue08 if _priorityValue08Err := writeBuffer.WriteVirtual(ctx, "priorityValue08", m.GetPriorityValue08()); _priorityValue08Err != nil { return errors.Wrap(_priorityValue08Err, "Error serializing 'priorityValue08' field") } // Virtual field priorityValue09 := m.GetPriorityValue09() _ = priorityValue09 if _priorityValue09Err := writeBuffer.WriteVirtual(ctx, "priorityValue09", m.GetPriorityValue09()); _priorityValue09Err != nil { return errors.Wrap(_priorityValue09Err, "Error serializing 'priorityValue09' field") } // Virtual field priorityValue10 := m.GetPriorityValue10() _ = priorityValue10 if _priorityValue10Err := writeBuffer.WriteVirtual(ctx, "priorityValue10", m.GetPriorityValue10()); _priorityValue10Err != nil { return errors.Wrap(_priorityValue10Err, "Error serializing 'priorityValue10' field") } // Virtual field priorityValue11 := m.GetPriorityValue11() _ = priorityValue11 if _priorityValue11Err := writeBuffer.WriteVirtual(ctx, "priorityValue11", m.GetPriorityValue11()); _priorityValue11Err != nil { return errors.Wrap(_priorityValue11Err, "Error serializing 'priorityValue11' field") } // Virtual field priorityValue12 := m.GetPriorityValue12() _ = priorityValue12 if _priorityValue12Err := writeBuffer.WriteVirtual(ctx, "priorityValue12", m.GetPriorityValue12()); _priorityValue12Err != nil { return errors.Wrap(_priorityValue12Err, "Error serializing 'priorityValue12' field") } // Virtual field priorityValue13 := m.GetPriorityValue13() _ = priorityValue13 if _priorityValue13Err := writeBuffer.WriteVirtual(ctx, "priorityValue13", m.GetPriorityValue13()); _priorityValue13Err != nil { return errors.Wrap(_priorityValue13Err, "Error serializing 'priorityValue13' field") } // Virtual field priorityValue14 := m.GetPriorityValue14() _ = priorityValue14 if _priorityValue14Err := writeBuffer.WriteVirtual(ctx, "priorityValue14", m.GetPriorityValue14()); _priorityValue14Err != nil { return errors.Wrap(_priorityValue14Err, "Error serializing 'priorityValue14' field") } // Virtual field priorityValue15 := m.GetPriorityValue15() _ = priorityValue15 if _priorityValue15Err := writeBuffer.WriteVirtual(ctx, "priorityValue15", m.GetPriorityValue15()); _priorityValue15Err != nil { return errors.Wrap(_priorityValue15Err, "Error serializing 'priorityValue15' field") } // Virtual field priorityValue16 := m.GetPriorityValue16() _ = priorityValue16 if _priorityValue16Err := writeBuffer.WriteVirtual(ctx, "priorityValue16", m.GetPriorityValue16()); _priorityValue16Err != nil { return errors.Wrap(_priorityValue16Err, "Error serializing 'priorityValue16' field") } // Virtual field isIndexedAccess := m.GetIsIndexedAccess() _ = isIndexedAccess if _isIndexedAccessErr := writeBuffer.WriteVirtual(ctx, "isIndexedAccess", m.GetIsIndexedAccess()); _isIndexedAccessErr != nil { return errors.Wrap(_isIndexedAccessErr, "Error serializing 'isIndexedAccess' field") } // Virtual field indexEntry := m.GetIndexEntry() _ = indexEntry if _indexEntryErr := writeBuffer.WriteVirtual(ctx, "indexEntry", m.GetIndexEntry()); _indexEntryErr != nil { return errors.Wrap(_indexEntryErr, "Error serializing 'indexEntry' field") } if popErr := writeBuffer.PopContext("BACnetPriorityArray"); popErr != nil { return errors.Wrap(popErr, "Error popping for BACnetPriorityArray") } return nil } //// // Arguments Getter func (m *_BACnetPriorityArray) GetObjectTypeArgument() BACnetObjectType { return m.ObjectTypeArgument } func (m *_BACnetPriorityArray) GetTagNumber() uint8 { return m.TagNumber } func (m *_BACnetPriorityArray) GetArrayIndexArgument() BACnetTagPayloadUnsignedInteger { return m.ArrayIndexArgument } // //// func (m *_BACnetPriorityArray) IsBACnetPriorityArray() {} func (m *_BACnetPriorityArray) DeepCopy() any { return m.deepCopy() } func (m *_BACnetPriorityArray) deepCopy() *_BACnetPriorityArray { if m == nil { return nil } _BACnetPriorityArrayCopy := &_BACnetPriorityArray{ utils.DeepCopy[BACnetApplicationTagUnsignedInteger](m.NumberOfDataElements), utils.DeepCopySlice[BACnetPriorityValue, BACnetPriorityValue](m.Data), m.ObjectTypeArgument, m.TagNumber, m.ArrayIndexArgument, } return _BACnetPriorityArrayCopy } func (m *_BACnetPriorityArray) String() string { if m == nil { return "<nil>" } wb := utils.NewWriteBufferBoxBased( utils.WithWriteBufferBoxBasedMergeSingleBoxes(), utils.WithWriteBufferBoxBasedOmitEmptyBoxes(), utils.WithWriteBufferBoxBasedPrintPosLengthFooter(), ) if err := wb.WriteSerializable(context.Background(), m); err != nil { return err.Error() } return wb.GetBox().String() }