El nodo de JavaCompute tiene dos terminales de salida, Out y Alternate. Por consiguiente, puede utilizar el nodo como nodo de filtro y como nodo de transformación de mensaje. Después de procesar el mensaje, propague el mensaje a un terminal de salida utilizando un método propagate().
out.propagate(assembly);
Para
propagar el mensaje ensamblado al terminal Alternate, utilice el
método siguiente: 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 los recursos de árbol de mensaje y de analizador después de
la propagación, para poder utilizar estos recursos cuando se construya el
siguiente MbMessage para la propagación. Puede ver un ejemplo en Trabajar con mensajes de entrada grandes para propagar varios mensajes de salida.Cuando se utiliza este código, se reclaman los recursos de árbol de mensaje para el MbMessage no de sólo lectura en el MbMessageAssembly. Como resultado, se llama al método MbMessage.clearMessage(true) en cada MbMessage modificable, por lo que estos MbMessages no se pueden volver a utilizar.
Si los campos de árbol de mensaje son locales para cada MbMessage, o sólo se han desconectado o conectado entre los tres MbMessage en el MbMessageAssembly, los analizadores también se recuperan para su reutilización. Sin embargo, si se han desconectado y conectado elementos a un MbMessage que no se ha propagado, los analizadores no se puede reutilizar en las siguientes iteraciones de los registros de entrada.
Para estos objetos MbMessage que no se han propagado, llame al método MbMessage.clearMessage(true) explícitamente antes de procesar el siguiente registro de entrada. Este método permite reutilizar los analizadores.