@Override public MutableFudgeMsg buildMessage(FudgeSerializer serializer, CalculationJobItem object) { MutableFudgeMsg msg = serializer.newMessage(); ComputationTargetSpecification computationTargetSpecification = object.getComputationTargetSpecification(); if (computationTargetSpecification != null) { MutableFudgeMsg specMsg = serializer.objectToFudgeMsg(computationTargetSpecification); for (FudgeField fudgeField : specMsg.getAllFields()) { msg.add(fudgeField); } } String functionUniqueIdentifier = object.getFunctionUniqueIdentifier(); if (functionUniqueIdentifier != null) { msg.add(FUNCTION_UNIQUE_ID_FIELD_NAME, functionUniqueIdentifier); } FunctionParameters functionParameters = object.getFunctionParameters(); if (functionParameters != null) { serializer.addToMessageWithClassHeaders( msg, FUNCTION_PARAMETERS_FIELD_NAME, null, functionParameters); } long[] inputs = object.getInputIdentifiers(); msg.add(INPUT_FIELD_NAME, inputs); for (ValueRequirement desiredValue : object.getDesiredValues()) { serializer.addToMessage(msg, DESIRED_VALUE_FIELD_NAME, null, desiredValue); } return msg; }