return buildMessageImpl(serializer, object, null, null, null);
}
public static CalculationJobItem buildObjectImpl(final FudgeDeserializer deserializer, final FudgeMsg message, final Map<Integer, ComputationTargetSpecification> targets,
final Map<Integer, String> functions, final Map<Integer, FunctionParameters> parameters) {
FudgeField field = message.getByName(TARGET_FIELD_NAME);
final ComputationTargetSpecification computationTargetSpecification;
if (field != null) {
computationTargetSpecification = targets.get(((Number) field.getValue()).intValue());
} else {
computationTargetSpecification = ComputationTargetReferenceFudgeBuilder.buildObjectImpl(deserializer, message).getSpecification();
if (targets != null) {
targets.put(targets.size(), computationTargetSpecification);
}
}
field = message.getByName(FUNCTION_UNIQUE_ID_FIELD_NAME);
final String functionUniqueId;
if (field.getValue() instanceof Number) {
functionUniqueId = functions.get(((Number) field.getValue()).intValue());
} else {
functionUniqueId = (String) field.getValue();
if (functions != null) {
functions.put(functions.size(), functionUniqueId);
}
}
final FunctionParameters functionParameters;
field = message.getByName(FUNCTION_PARAMETERS_FIELD_NAME);
if (field != null) {
if (field.getValue() instanceof Number) {
functionParameters = parameters.get(((Number) field.getValue()).intValue());
} else {
functionParameters = deserializer.fieldValueToObject(FunctionParameters.class, field);
if (parameters != null) {
parameters.put(parameters.size(), functionParameters);
}