O nó JavaCompute possui dois terminais de saída, Out e Alternate. Portanto, é possível utilizar o nó como um nó filter e como um nó message transformation. Depois de processar a mensagem, propague-a para um terminal de saída usando um método propagate().
out.propagate(assembly);
Para propagar a montagem da mensagem para o terminal Alternativo, utilize o seguinte método: alt.propagate(assembly);
MbMessage outMessage = new MbMessage(inMessage);
MbMessageAssembly outAssembly = new MbMessageAssembly(inAssembly, outMessage);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
...
newMsg.finalizeMessage(MbMessage.FINALIZE_NONE);
out.propagate(outAssembly);
MbOutputTerminal.propagate(MbMessageAssembly, true)
Este
código recupera a árvore de mensagens e os recursos do analisador após a propagação
para que esses recursos possam ser usados quando o próximo MbMessage for construído
para propagação. É possível ver um exemplo em Trabalhando com Mensagens de Entrada Grandes para Propagar Várias Mensagens de Saída.Quando você usa esse código, os recursos da árvore de mensagens são recuperados para os MbMessages que não são somente leitura no MbMessageAssembly. Como resultado, o método MbMessage.clearMessage(true) é chamado em cada MbMessage modificável; portanto, esses MbMessages não podem ser usados novamente.
Se os campos da árvore de mensagens eram locais para cada MbMessage, ou foram apenas removidos ou anexados entre os três MbMessages no MbMessageAssembly, os analisadores também serão recuperados para reutilização. Entretanto, se os elementos foram removidos e anexados a um MbMessage que não foi propagado, os analisadores não poderão ser reutilizados nas próximas iterações de registros de entrada.
Para tais objetos MbMessage que não foram propagados, chame o método MbMessage.clearMessage(true) explicitamente antes de o próximo registro de entrada ser processado. Esse método permite que os analisadores sejam reutilizados.