Class: Enginelet

@nginstack/engine/lib/java/Enginelet~ Enginelet


new Enginelet(engineletClassName)

A classe Enginelet tem o objetivo de simplificar a execução de código Java a partir do Engine.

Classes Java que implementam a interface "com.nginstack.engine.Enginelet" e o seu método handleCommand podem ser utilizadas em JavaScript por meio da classe Enginelet. Para isso, deve ser criada uma instância de Enginelet no JavaScript informando o nome completo da classe Java. Ao executar o método handleCommand da classe JavaScript, será executado o método de mesmo nome da classe Java.

Os parâmetros e o retorno do método handleCommand são do tipo String no Java e os valores informados em JavaScript são convertidos automaticamente para esse tipo utilizando a conversão padrão do JavaScript. Objetos complexos devem ser convertidos manualmente em um formato textual mais adequado, como o JSON.

Importante: atualmente o sistema não mantém um estado de execução no ambiente Java. Por esse motivo, a classe Java indicada por engineletClassName é recriada a cada execução do método handleCommand. Caso seja necessária a preservação de estado entre as execuções, devem ser utilizadas outras classes Java que persistam após a construção e destruição da classe que implementa a interface Enginelet.

Parameters:
Name Type Description
engineletClassName string

Nome da classe Java que estende a classe Enginelet.

Examples
// Exemplo de consumo de um Enginelet em JavaScript
const enginelet = new Enginelet('com.example.XmlSigner');
enginelet.handleCommand('signXml', xmlContent);
// Exemplo de implementação de um Enginelet em Java
package com.example;

import com.nginstack.engine.Enginelet;
import com.example.XmlSigner;

class UnsupportedCommandException extends RuntimeException  {
  UnsupportedCommandException(String command) {
    super("Unsupported command: " + command);
  }
}

public class XmlSigner extends Enginelet {
  public String handleCommand(String commandName, String[] commandArgs) {
    if (commandName.equals("signXml")) {
      return XmlSigner.sign(commandArgs[0]);
    } else {
      throw new UnsupportedCommandException(commandName);
    }
  }
}

Methods


handleCommand(commandName, args)

Envia um comando que será tratado pelo método handleCommand da classe Enginelet no ambiente Java.

Parameters:
Name Type Argument Description
commandName string

Nome do comando que será enviado para a classe Enginelet Java.

args string <repeatable>

Argumentos que serão passados para o método handleCommand.

Returns:

Valor retornado pelo método handleCommand da classe Java.

Type
string