return msg;
}
@Override
public FunctionBlacklistRule buildObject(final FudgeDeserializer deserializer, final FudgeMsg message) {
final FunctionBlacklistRule rule = new FunctionBlacklistRule();
FudgeField field = message.getByName(FUNCTION_ID_FIELD);
if (field != null) {
rule.setFunctionIdentifier(message.getFieldValue(String.class, field));
}
field = message.getByName(FUNCTION_PARAMETERS_FIELD);
if (field != null) {
rule.setFunctionParameters(deserializer.fieldValueToObject(FunctionParameters.class, field));
}
field = message.getByName(TARGET_FIELD);
if (field != null) {
rule.setTarget(deserializer.fieldValueToObject(ComputationTargetReference.class, field).getSpecification());
}
field = message.getByName(INPUTS_FIELD);
if (field != null) {
final FudgeMsg fieldValue = message.getFieldValue(FudgeMsg.class, field);
final Collection<ValueSpecification> inputs = new ArrayList<ValueSpecification>(fieldValue.getNumFields());
for (FudgeField input : fieldValue) {
inputs.add(deserializer.fieldValueToObject(ValueSpecification.class, input));
}
rule.setInputs(inputs);
}
field = message.getByName(OUTPUTS_FIELD);
if (field != null) {
final FudgeMsg fieldValue = message.getFieldValue(FudgeMsg.class, field);
final Collection<ValueSpecification> outputs = new ArrayList<ValueSpecification>(fieldValue.getNumFields());
for (FudgeField output : fieldValue) {
outputs.add(deserializer.fieldValueToObject(ValueSpecification.class, output));
}
rule.setOutputs(outputs);
}
return rule;
}