Sha256: aeb0e0884cc9ae7b34a9fa31ee6dd96b1cbe96aa26106036c4e5e83a82e06230

Contents?: true

Size: 775 Bytes

Versions: 6

Compression:

Stored size: 775 Bytes

Contents

const Handler = require('./Handler')
const Command = require('../../utils/Command')

class AbstractHandler {
    constructor() {
        if(new.target === AbstractHandler)
            throw new TypeError('You cannot instantiate abstract class')
    }

    process(command) {
        throw new Error('process must be implemented')
    }

    handleCommand(command) {
        this.iterate(command)
        return this.process(command)
    }

    iterate(cmd) {
        for(let i = 0; i < cmd.payload.length; i++) {
            
            if(cmd.payload[i] instanceof Command) {
                let inner = cmd.payload[i]
                cmd.payload[i] = Handler.handlers[inner.commandId].handleCommand(inner)
            }
        }
    }
}

module.exports = AbstractHandler

Version data entries

6 entries across 3 versions & 1 rubygems

Version Path
javonet-ruby-sdk-2.0.4 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.0.4 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.0.1 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/src/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.0.1 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/src/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.0.0 lib/javonet-ruby-sdk/Binaries/Nodejs/Linux/X64/src/core/handler/AbstractHandler.js
javonet-ruby-sdk-2.0.0 lib/javonet-ruby-sdk/Binaries/Nodejs/MacOs/X64/src/core/handler/AbstractHandler.js