Sha256: f6d6ef79dfb334f539a75ffea1f6e0f2e76a6b3b79537aa10236177281e85555

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

const AbstractHandler = require('./AbstractHandler')

class SetInstanceFieldHandler extends AbstractHandler {
    requiredParametersCount = 3

    constructor() {
        super()
    }

    process(command) {
        try {
            if (command.payload.length < this.requiredParametersCount) {
                throw new Error('Set Instance Field parameters mismatch')
            }
            const { payload } = command
            let instance = payload[0]
            let field = payload[1]
            let value = payload[2]
            if (typeof instance[field] === 'undefined') {
                let fields = Object.keys(instance)
                let message = `Field ${field} not found in object. Available fields:\n`
                fields.forEach((fieldIter) => {
                    message += `${fieldIter}\n`
                })
                throw new Error(message)
            }
            instance[field] = value
            return 0
        } catch (error) {
            throw this.process_stack_trace(error, this.constructor.name)
        }
    }
}

module.exports = new SetInstanceFieldHandler()

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.5.13 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/SetInstanceFieldHandler.js
javonet-ruby-sdk-2.5.12 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/SetInstanceFieldHandler.js
javonet-ruby-sdk-2.5.11 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/SetInstanceFieldHandler.js
javonet-ruby-sdk-2.5.10 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/SetInstanceFieldHandler.js
javonet-ruby-sdk-2.5.9 lib/javonet-ruby-sdk/Binaries/Nodejs/lib/core/handler/SetInstanceFieldHandler.js