plc4go/protocols/opcua/readwrite/model/JsonActionRequestMessage.go (521 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.
// JsonActionRequestMessage is the corresponding interface of JsonActionRequestMessage
type JsonActionRequestMessage interface {
fmt.Stringer
utils.LengthAware
utils.Serializable
utils.Copyable
ExtensionObjectDefinition
// GetDataSetWriterId returns DataSetWriterId (property field)
GetDataSetWriterId() uint16
// GetActionTargetId returns ActionTargetId (property field)
GetActionTargetId() uint16
// GetDataSetWriterName returns DataSetWriterName (property field)
GetDataSetWriterName() PascalString
// GetWriterGroupName returns WriterGroupName (property field)
GetWriterGroupName() PascalString
// GetMetaDataVersion returns MetaDataVersion (property field)
GetMetaDataVersion() ConfigurationVersionDataType
// GetMinorVersion returns MinorVersion (property field)
GetMinorVersion() uint32
// GetTimestamp returns Timestamp (property field)
GetTimestamp() int64
// GetMessageType returns MessageType (property field)
GetMessageType() PascalString
// GetRequestId returns RequestId (property field)
GetRequestId() uint16
// GetActionState returns ActionState (property field)
GetActionState() ActionState
// GetPayload returns Payload (property field)
GetPayload() ExtensionObject
// IsJsonActionRequestMessage is a marker method to prevent unintentional type checks (interfaces of same signature)
IsJsonActionRequestMessage()
// CreateBuilder creates a JsonActionRequestMessageBuilder
CreateJsonActionRequestMessageBuilder() JsonActionRequestMessageBuilder
}
// _JsonActionRequestMessage is the data-structure of this message
type _JsonActionRequestMessage struct {
ExtensionObjectDefinitionContract
DataSetWriterId uint16
ActionTargetId uint16
DataSetWriterName PascalString
WriterGroupName PascalString
MetaDataVersion ConfigurationVersionDataType
MinorVersion uint32
Timestamp int64
MessageType PascalString
RequestId uint16
ActionState ActionState
Payload ExtensionObject
}
var _ JsonActionRequestMessage = (*_JsonActionRequestMessage)(nil)
var _ ExtensionObjectDefinitionRequirements = (*_JsonActionRequestMessage)(nil)
// NewJsonActionRequestMessage factory function for _JsonActionRequestMessage
func NewJsonActionRequestMessage(dataSetWriterId uint16, actionTargetId uint16, dataSetWriterName PascalString, writerGroupName PascalString, metaDataVersion ConfigurationVersionDataType, minorVersion uint32, timestamp int64, messageType PascalString, requestId uint16, actionState ActionState, payload ExtensionObject) *_JsonActionRequestMessage {
if dataSetWriterName == nil {
panic("dataSetWriterName of type PascalString for JsonActionRequestMessage must not be nil")
}
if writerGroupName == nil {
panic("writerGroupName of type PascalString for JsonActionRequestMessage must not be nil")
}
if metaDataVersion == nil {
panic("metaDataVersion of type ConfigurationVersionDataType for JsonActionRequestMessage must not be nil")
}
if messageType == nil {
panic("messageType of type PascalString for JsonActionRequestMessage must not be nil")
}
if payload == nil {
panic("payload of type ExtensionObject for JsonActionRequestMessage must not be nil")
}
_result := &_JsonActionRequestMessage{
ExtensionObjectDefinitionContract: NewExtensionObjectDefinition(),
DataSetWriterId: dataSetWriterId,
ActionTargetId: actionTargetId,
DataSetWriterName: dataSetWriterName,
WriterGroupName: writerGroupName,
MetaDataVersion: metaDataVersion,
MinorVersion: minorVersion,
Timestamp: timestamp,
MessageType: messageType,
RequestId: requestId,
ActionState: actionState,
Payload: payload,
}
_result.ExtensionObjectDefinitionContract.(*_ExtensionObjectDefinition)._SubType = _result
return _result
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Builder
///////////////////////
// JsonActionRequestMessageBuilder is a builder for JsonActionRequestMessage
type JsonActionRequestMessageBuilder interface {
utils.Copyable
// WithMandatoryFields adds all mandatory fields (convenience for using multiple builder calls)
WithMandatoryFields(dataSetWriterId uint16, actionTargetId uint16, dataSetWriterName PascalString, writerGroupName PascalString, metaDataVersion ConfigurationVersionDataType, minorVersion uint32, timestamp int64, messageType PascalString, requestId uint16, actionState ActionState, payload ExtensionObject) JsonActionRequestMessageBuilder
// WithDataSetWriterId adds DataSetWriterId (property field)
WithDataSetWriterId(uint16) JsonActionRequestMessageBuilder
// WithActionTargetId adds ActionTargetId (property field)
WithActionTargetId(uint16) JsonActionRequestMessageBuilder
// WithDataSetWriterName adds DataSetWriterName (property field)
WithDataSetWriterName(PascalString) JsonActionRequestMessageBuilder
// WithDataSetWriterNameBuilder adds DataSetWriterName (property field) which is build by the builder
WithDataSetWriterNameBuilder(func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder
// WithWriterGroupName adds WriterGroupName (property field)
WithWriterGroupName(PascalString) JsonActionRequestMessageBuilder
// WithWriterGroupNameBuilder adds WriterGroupName (property field) which is build by the builder
WithWriterGroupNameBuilder(func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder
// WithMetaDataVersion adds MetaDataVersion (property field)
WithMetaDataVersion(ConfigurationVersionDataType) JsonActionRequestMessageBuilder
// WithMetaDataVersionBuilder adds MetaDataVersion (property field) which is build by the builder
WithMetaDataVersionBuilder(func(ConfigurationVersionDataTypeBuilder) ConfigurationVersionDataTypeBuilder) JsonActionRequestMessageBuilder
// WithMinorVersion adds MinorVersion (property field)
WithMinorVersion(uint32) JsonActionRequestMessageBuilder
// WithTimestamp adds Timestamp (property field)
WithTimestamp(int64) JsonActionRequestMessageBuilder
// WithMessageType adds MessageType (property field)
WithMessageType(PascalString) JsonActionRequestMessageBuilder
// WithMessageTypeBuilder adds MessageType (property field) which is build by the builder
WithMessageTypeBuilder(func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder
// WithRequestId adds RequestId (property field)
WithRequestId(uint16) JsonActionRequestMessageBuilder
// WithActionState adds ActionState (property field)
WithActionState(ActionState) JsonActionRequestMessageBuilder
// WithPayload adds Payload (property field)
WithPayload(ExtensionObject) JsonActionRequestMessageBuilder
// WithPayloadBuilder adds Payload (property field) which is build by the builder
WithPayloadBuilder(func(ExtensionObjectBuilder) ExtensionObjectBuilder) JsonActionRequestMessageBuilder
// Done is used to finish work on this child and return (or create one if none) to the parent builder
Done() ExtensionObjectDefinitionBuilder
// Build builds the JsonActionRequestMessage or returns an error if something is wrong
Build() (JsonActionRequestMessage, error)
// MustBuild does the same as Build but panics on error
MustBuild() JsonActionRequestMessage
}
// NewJsonActionRequestMessageBuilder() creates a JsonActionRequestMessageBuilder
func NewJsonActionRequestMessageBuilder() JsonActionRequestMessageBuilder {
return &_JsonActionRequestMessageBuilder{_JsonActionRequestMessage: new(_JsonActionRequestMessage)}
}
type _JsonActionRequestMessageBuilder struct {
*_JsonActionRequestMessage
parentBuilder *_ExtensionObjectDefinitionBuilder
err *utils.MultiError
}
var _ (JsonActionRequestMessageBuilder) = (*_JsonActionRequestMessageBuilder)(nil)
func (b *_JsonActionRequestMessageBuilder) setParent(contract ExtensionObjectDefinitionContract) {
b.ExtensionObjectDefinitionContract = contract
contract.(*_ExtensionObjectDefinition)._SubType = b._JsonActionRequestMessage
}
func (b *_JsonActionRequestMessageBuilder) WithMandatoryFields(dataSetWriterId uint16, actionTargetId uint16, dataSetWriterName PascalString, writerGroupName PascalString, metaDataVersion ConfigurationVersionDataType, minorVersion uint32, timestamp int64, messageType PascalString, requestId uint16, actionState ActionState, payload ExtensionObject) JsonActionRequestMessageBuilder {
return b.WithDataSetWriterId(dataSetWriterId).WithActionTargetId(actionTargetId).WithDataSetWriterName(dataSetWriterName).WithWriterGroupName(writerGroupName).WithMetaDataVersion(metaDataVersion).WithMinorVersion(minorVersion).WithTimestamp(timestamp).WithMessageType(messageType).WithRequestId(requestId).WithActionState(actionState).WithPayload(payload)
}
func (b *_JsonActionRequestMessageBuilder) WithDataSetWriterId(dataSetWriterId uint16) JsonActionRequestMessageBuilder {
b.DataSetWriterId = dataSetWriterId
return b
}
func (b *_JsonActionRequestMessageBuilder) WithActionTargetId(actionTargetId uint16) JsonActionRequestMessageBuilder {
b.ActionTargetId = actionTargetId
return b
}
func (b *_JsonActionRequestMessageBuilder) WithDataSetWriterName(dataSetWriterName PascalString) JsonActionRequestMessageBuilder {
b.DataSetWriterName = dataSetWriterName
return b
}
func (b *_JsonActionRequestMessageBuilder) WithDataSetWriterNameBuilder(builderSupplier func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder {
builder := builderSupplier(b.DataSetWriterName.CreatePascalStringBuilder())
var err error
b.DataSetWriterName, 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, "PascalStringBuilder failed"))
}
return b
}
func (b *_JsonActionRequestMessageBuilder) WithWriterGroupName(writerGroupName PascalString) JsonActionRequestMessageBuilder {
b.WriterGroupName = writerGroupName
return b
}
func (b *_JsonActionRequestMessageBuilder) WithWriterGroupNameBuilder(builderSupplier func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder {
builder := builderSupplier(b.WriterGroupName.CreatePascalStringBuilder())
var err error
b.WriterGroupName, 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, "PascalStringBuilder failed"))
}
return b
}
func (b *_JsonActionRequestMessageBuilder) WithMetaDataVersion(metaDataVersion ConfigurationVersionDataType) JsonActionRequestMessageBuilder {
b.MetaDataVersion = metaDataVersion
return b
}
func (b *_JsonActionRequestMessageBuilder) WithMetaDataVersionBuilder(builderSupplier func(ConfigurationVersionDataTypeBuilder) ConfigurationVersionDataTypeBuilder) JsonActionRequestMessageBuilder {
builder := builderSupplier(b.MetaDataVersion.CreateConfigurationVersionDataTypeBuilder())
var err error
b.MetaDataVersion, 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, "ConfigurationVersionDataTypeBuilder failed"))
}
return b
}
func (b *_JsonActionRequestMessageBuilder) WithMinorVersion(minorVersion uint32) JsonActionRequestMessageBuilder {
b.MinorVersion = minorVersion
return b
}
func (b *_JsonActionRequestMessageBuilder) WithTimestamp(timestamp int64) JsonActionRequestMessageBuilder {
b.Timestamp = timestamp
return b
}
func (b *_JsonActionRequestMessageBuilder) WithMessageType(messageType PascalString) JsonActionRequestMessageBuilder {
b.MessageType = messageType
return b
}
func (b *_JsonActionRequestMessageBuilder) WithMessageTypeBuilder(builderSupplier func(PascalStringBuilder) PascalStringBuilder) JsonActionRequestMessageBuilder {
builder := builderSupplier(b.MessageType.CreatePascalStringBuilder())
var err error
b.MessageType, 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, "PascalStringBuilder failed"))
}
return b
}
func (b *_JsonActionRequestMessageBuilder) WithRequestId(requestId uint16) JsonActionRequestMessageBuilder {
b.RequestId = requestId
return b
}
func (b *_JsonActionRequestMessageBuilder) WithActionState(actionState ActionState) JsonActionRequestMessageBuilder {
b.ActionState = actionState
return b
}
func (b *_JsonActionRequestMessageBuilder) WithPayload(payload ExtensionObject) JsonActionRequestMessageBuilder {
b.Payload = payload
return b
}
func (b *_JsonActionRequestMessageBuilder) WithPayloadBuilder(builderSupplier func(ExtensionObjectBuilder) ExtensionObjectBuilder) JsonActionRequestMessageBuilder {
builder := builderSupplier(b.Payload.CreateExtensionObjectBuilder())
var err error
b.Payload, 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, "ExtensionObjectBuilder failed"))
}
return b
}
func (b *_JsonActionRequestMessageBuilder) Build() (JsonActionRequestMessage, error) {
if b.DataSetWriterName == nil {
if b.err == nil {
b.err = new(utils.MultiError)
}
b.err.Append(errors.New("mandatory field 'dataSetWriterName' not set"))
}
if b.WriterGroupName == nil {
if b.err == nil {
b.err = new(utils.MultiError)
}
b.err.Append(errors.New("mandatory field 'writerGroupName' not set"))
}
if b.MetaDataVersion == nil {
if b.err == nil {
b.err = new(utils.MultiError)
}
b.err.Append(errors.New("mandatory field 'metaDataVersion' not set"))
}
if b.MessageType == nil {
if b.err == nil {
b.err = new(utils.MultiError)
}
b.err.Append(errors.New("mandatory field 'messageType' not set"))
}
if b.Payload == nil {
if b.err == nil {
b.err = new(utils.MultiError)
}
b.err.Append(errors.New("mandatory field 'payload' not set"))
}
if b.err != nil {
return nil, errors.Wrap(b.err, "error occurred during build")
}
return b._JsonActionRequestMessage.deepCopy(), nil
}
func (b *_JsonActionRequestMessageBuilder) MustBuild() JsonActionRequestMessage {
build, err := b.Build()
if err != nil {
panic(err)
}
return build
}
func (b *_JsonActionRequestMessageBuilder) Done() ExtensionObjectDefinitionBuilder {
if b.parentBuilder == nil {
b.parentBuilder = NewExtensionObjectDefinitionBuilder().(*_ExtensionObjectDefinitionBuilder)
}
return b.parentBuilder
}
func (b *_JsonActionRequestMessageBuilder) buildForExtensionObjectDefinition() (ExtensionObjectDefinition, error) {
return b.Build()
}
func (b *_JsonActionRequestMessageBuilder) DeepCopy() any {
_copy := b.CreateJsonActionRequestMessageBuilder().(*_JsonActionRequestMessageBuilder)
if b.err != nil {
_copy.err = b.err.DeepCopy().(*utils.MultiError)
}
return _copy
}
// CreateJsonActionRequestMessageBuilder creates a JsonActionRequestMessageBuilder
func (b *_JsonActionRequestMessage) CreateJsonActionRequestMessageBuilder() JsonActionRequestMessageBuilder {
if b == nil {
return NewJsonActionRequestMessageBuilder()
}
return &_JsonActionRequestMessageBuilder{_JsonActionRequestMessage: b.deepCopy()}
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Accessors for discriminator values.
///////////////////////
func (m *_JsonActionRequestMessage) GetExtensionId() int32 {
return int32(19323)
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
func (m *_JsonActionRequestMessage) GetParent() ExtensionObjectDefinitionContract {
return m.ExtensionObjectDefinitionContract
}
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
/////////////////////// Accessors for property fields.
///////////////////////
func (m *_JsonActionRequestMessage) GetDataSetWriterId() uint16 {
return m.DataSetWriterId
}
func (m *_JsonActionRequestMessage) GetActionTargetId() uint16 {
return m.ActionTargetId
}
func (m *_JsonActionRequestMessage) GetDataSetWriterName() PascalString {
return m.DataSetWriterName
}
func (m *_JsonActionRequestMessage) GetWriterGroupName() PascalString {
return m.WriterGroupName
}
func (m *_JsonActionRequestMessage) GetMetaDataVersion() ConfigurationVersionDataType {
return m.MetaDataVersion
}
func (m *_JsonActionRequestMessage) GetMinorVersion() uint32 {
return m.MinorVersion
}
func (m *_JsonActionRequestMessage) GetTimestamp() int64 {
return m.Timestamp
}
func (m *_JsonActionRequestMessage) GetMessageType() PascalString {
return m.MessageType
}
func (m *_JsonActionRequestMessage) GetRequestId() uint16 {
return m.RequestId
}
func (m *_JsonActionRequestMessage) GetActionState() ActionState {
return m.ActionState
}
func (m *_JsonActionRequestMessage) GetPayload() ExtensionObject {
return m.Payload
}
///////////////////////
///////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Deprecated: use the interface for direct cast
func CastJsonActionRequestMessage(structType any) JsonActionRequestMessage {
if casted, ok := structType.(JsonActionRequestMessage); ok {
return casted
}
if casted, ok := structType.(*JsonActionRequestMessage); ok {
return *casted
}
return nil
}
func (m *_JsonActionRequestMessage) GetTypeName() string {
return "JsonActionRequestMessage"
}
func (m *_JsonActionRequestMessage) GetLengthInBits(ctx context.Context) uint16 {
lengthInBits := uint16(m.ExtensionObjectDefinitionContract.(*_ExtensionObjectDefinition).getLengthInBits(ctx))
// Simple field (dataSetWriterId)
lengthInBits += 16
// Simple field (actionTargetId)
lengthInBits += 16
// Simple field (dataSetWriterName)
lengthInBits += m.DataSetWriterName.GetLengthInBits(ctx)
// Simple field (writerGroupName)
lengthInBits += m.WriterGroupName.GetLengthInBits(ctx)
// Simple field (metaDataVersion)
lengthInBits += m.MetaDataVersion.GetLengthInBits(ctx)
// Simple field (minorVersion)
lengthInBits += 32
// Simple field (timestamp)
lengthInBits += 64
// Simple field (messageType)
lengthInBits += m.MessageType.GetLengthInBits(ctx)
// Simple field (requestId)
lengthInBits += 16
// Simple field (actionState)
lengthInBits += 32
// Simple field (payload)
lengthInBits += m.Payload.GetLengthInBits(ctx)
return lengthInBits
}
func (m *_JsonActionRequestMessage) GetLengthInBytes(ctx context.Context) uint16 {
return m.GetLengthInBits(ctx) / 8
}
func (m *_JsonActionRequestMessage) parse(ctx context.Context, readBuffer utils.ReadBuffer, parent *_ExtensionObjectDefinition, extensionId int32) (__jsonActionRequestMessage JsonActionRequestMessage, err error) {
m.ExtensionObjectDefinitionContract = parent
parent._SubType = m
positionAware := readBuffer
_ = positionAware
if pullErr := readBuffer.PullContext("JsonActionRequestMessage"); pullErr != nil {
return nil, errors.Wrap(pullErr, "Error pulling for JsonActionRequestMessage")
}
currentPos := positionAware.GetPos()
_ = currentPos
dataSetWriterId, err := ReadSimpleField(ctx, "dataSetWriterId", ReadUnsignedShort(readBuffer, uint8(16)))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataSetWriterId' field"))
}
m.DataSetWriterId = dataSetWriterId
actionTargetId, err := ReadSimpleField(ctx, "actionTargetId", ReadUnsignedShort(readBuffer, uint8(16)))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actionTargetId' field"))
}
m.ActionTargetId = actionTargetId
dataSetWriterName, err := ReadSimpleField[PascalString](ctx, "dataSetWriterName", ReadComplex[PascalString](PascalStringParseWithBuffer, readBuffer))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'dataSetWriterName' field"))
}
m.DataSetWriterName = dataSetWriterName
writerGroupName, err := ReadSimpleField[PascalString](ctx, "writerGroupName", ReadComplex[PascalString](PascalStringParseWithBuffer, readBuffer))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'writerGroupName' field"))
}
m.WriterGroupName = writerGroupName
metaDataVersion, err := ReadSimpleField[ConfigurationVersionDataType](ctx, "metaDataVersion", ReadComplex[ConfigurationVersionDataType](ExtensionObjectDefinitionParseWithBufferProducer[ConfigurationVersionDataType]((int32)(int32(14595))), readBuffer))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'metaDataVersion' field"))
}
m.MetaDataVersion = metaDataVersion
minorVersion, err := ReadSimpleField(ctx, "minorVersion", ReadUnsignedInt(readBuffer, uint8(32)))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'minorVersion' field"))
}
m.MinorVersion = minorVersion
timestamp, err := ReadSimpleField(ctx, "timestamp", ReadSignedLong(readBuffer, uint8(64)))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'timestamp' field"))
}
m.Timestamp = timestamp
messageType, err := ReadSimpleField[PascalString](ctx, "messageType", ReadComplex[PascalString](PascalStringParseWithBuffer, readBuffer))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'messageType' field"))
}
m.MessageType = messageType
requestId, err := ReadSimpleField(ctx, "requestId", ReadUnsignedShort(readBuffer, uint8(16)))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'requestId' field"))
}
m.RequestId = requestId
actionState, err := ReadEnumField[ActionState](ctx, "actionState", "ActionState", ReadEnum(ActionStateByValue, ReadUnsignedInt(readBuffer, uint8(32))))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actionState' field"))
}
m.ActionState = actionState
payload, err := ReadSimpleField[ExtensionObject](ctx, "payload", ReadComplex[ExtensionObject](ExtensionObjectParseWithBufferProducer[ExtensionObject]((bool)(bool(true))), readBuffer))
if err != nil {
return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'payload' field"))
}
m.Payload = payload
if closeErr := readBuffer.CloseContext("JsonActionRequestMessage"); closeErr != nil {
return nil, errors.Wrap(closeErr, "Error closing for JsonActionRequestMessage")
}
return m, nil
}
func (m *_JsonActionRequestMessage) 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 *_JsonActionRequestMessage) SerializeWithWriteBuffer(ctx context.Context, writeBuffer utils.WriteBuffer) error {
positionAware := writeBuffer
_ = positionAware
log := zerolog.Ctx(ctx)
_ = log
ser := func() error {
if pushErr := writeBuffer.PushContext("JsonActionRequestMessage"); pushErr != nil {
return errors.Wrap(pushErr, "Error pushing for JsonActionRequestMessage")
}
if err := WriteSimpleField[uint16](ctx, "dataSetWriterId", m.GetDataSetWriterId(), WriteUnsignedShort(writeBuffer, 16)); err != nil {
return errors.Wrap(err, "Error serializing 'dataSetWriterId' field")
}
if err := WriteSimpleField[uint16](ctx, "actionTargetId", m.GetActionTargetId(), WriteUnsignedShort(writeBuffer, 16)); err != nil {
return errors.Wrap(err, "Error serializing 'actionTargetId' field")
}
if err := WriteSimpleField[PascalString](ctx, "dataSetWriterName", m.GetDataSetWriterName(), WriteComplex[PascalString](writeBuffer)); err != nil {
return errors.Wrap(err, "Error serializing 'dataSetWriterName' field")
}
if err := WriteSimpleField[PascalString](ctx, "writerGroupName", m.GetWriterGroupName(), WriteComplex[PascalString](writeBuffer)); err != nil {
return errors.Wrap(err, "Error serializing 'writerGroupName' field")
}
if err := WriteSimpleField[ConfigurationVersionDataType](ctx, "metaDataVersion", m.GetMetaDataVersion(), WriteComplex[ConfigurationVersionDataType](writeBuffer)); err != nil {
return errors.Wrap(err, "Error serializing 'metaDataVersion' field")
}
if err := WriteSimpleField[uint32](ctx, "minorVersion", m.GetMinorVersion(), WriteUnsignedInt(writeBuffer, 32)); err != nil {
return errors.Wrap(err, "Error serializing 'minorVersion' field")
}
if err := WriteSimpleField[int64](ctx, "timestamp", m.GetTimestamp(), WriteSignedLong(writeBuffer, 64)); err != nil {
return errors.Wrap(err, "Error serializing 'timestamp' field")
}
if err := WriteSimpleField[PascalString](ctx, "messageType", m.GetMessageType(), WriteComplex[PascalString](writeBuffer)); err != nil {
return errors.Wrap(err, "Error serializing 'messageType' field")
}
if err := WriteSimpleField[uint16](ctx, "requestId", m.GetRequestId(), WriteUnsignedShort(writeBuffer, 16)); err != nil {
return errors.Wrap(err, "Error serializing 'requestId' field")
}
if err := WriteSimpleEnumField[ActionState](ctx, "actionState", "ActionState", m.GetActionState(), WriteEnum[ActionState, uint32](ActionState.GetValue, ActionState.PLC4XEnumName, WriteUnsignedInt(writeBuffer, 32))); err != nil {
return errors.Wrap(err, "Error serializing 'actionState' field")
}
if err := WriteSimpleField[ExtensionObject](ctx, "payload", m.GetPayload(), WriteComplex[ExtensionObject](writeBuffer)); err != nil {
return errors.Wrap(err, "Error serializing 'payload' field")
}
if popErr := writeBuffer.PopContext("JsonActionRequestMessage"); popErr != nil {
return errors.Wrap(popErr, "Error popping for JsonActionRequestMessage")
}
return nil
}
return m.ExtensionObjectDefinitionContract.(*_ExtensionObjectDefinition).serializeParent(ctx, writeBuffer, m, ser)
}
func (m *_JsonActionRequestMessage) IsJsonActionRequestMessage() {}
func (m *_JsonActionRequestMessage) DeepCopy() any {
return m.deepCopy()
}
func (m *_JsonActionRequestMessage) deepCopy() *_JsonActionRequestMessage {
if m == nil {
return nil
}
_JsonActionRequestMessageCopy := &_JsonActionRequestMessage{
m.ExtensionObjectDefinitionContract.(*_ExtensionObjectDefinition).deepCopy(),
m.DataSetWriterId,
m.ActionTargetId,
utils.DeepCopy[PascalString](m.DataSetWriterName),
utils.DeepCopy[PascalString](m.WriterGroupName),
utils.DeepCopy[ConfigurationVersionDataType](m.MetaDataVersion),
m.MinorVersion,
m.Timestamp,
utils.DeepCopy[PascalString](m.MessageType),
m.RequestId,
m.ActionState,
utils.DeepCopy[ExtensionObject](m.Payload),
}
_JsonActionRequestMessageCopy.ExtensionObjectDefinitionContract.(*_ExtensionObjectDefinition)._SubType = m
return _JsonActionRequestMessageCopy
}
func (m *_JsonActionRequestMessage) 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()
}