MutableFudgeMsg msg = serializer.newMessage();
serializer.addToMessage(msg, COMPUTATION_TARGET_FIELD, null, node.getComputationTarget());
if (node.getFunction() != null) {
msg.add(PARAMETERIZED_FUNCTION_UNIQUE_ID_FIELD, null, node.getFunction().getUniqueId());
serializer.addToMessageWithClassHeaders(msg, FUNCTION_PARAMETERS_FIELD, null, node.getFunction().getParameters());
FunctionDefinition functionDefinition = node.getFunction().getFunction().getFunctionDefinition();
msg.add(FUNCTION_UNIQUE_ID_FIELD, functionDefinition.getUniqueId());
msg.add(FUNCTION_SHORT_NAME_FIELD, functionDefinition.getShortName());
}
serializer.addToMessage(msg, INPUT_VALUES_FIELD, null, node.getInputValues());
serializer.addToMessage(msg, OUTPUT_VALUES_FIELD, null, node.getOutputValues());
serializer.addToMessage(msg, TERMINAL_OUTPUT_VALUES_FIELD, null, node.getTerminalOutputValues());
return msg;