@Override
public PointSelector buildObject(FudgeDeserializer deserializer, FudgeMsg msg) {
Set<ExternalId> ids;
if (msg.hasField(IDS)) {
ids = Sets.newHashSet();
FudgeMsg idsMsg = msg.getMessage(IDS);
for (FudgeField field : idsMsg) {
ExternalId id = deserializer.fieldValueToObject(ExternalId.class, field);
ids.add(id);
}
} else {
ids = null;
}
ExternalScheme idMatchScheme;
if (msg.hasField(ID_MATCH_SCHEME)) {
String idMatchSchemeStr = deserializer.fieldValueToObject(String.class, msg.getByName(ID_MATCH_SCHEME));
idMatchScheme = ExternalScheme.of(idMatchSchemeStr);
} else {
idMatchScheme = null;
}
Pattern idMatchPattern;
if (msg.hasField(ID_MATCH_PATTERN)) {
String idMatchPatternStr = deserializer.fieldValueToObject(String.class, msg.getByName(ID_MATCH_PATTERN));
idMatchPattern = Pattern.compile(idMatchPatternStr);
} else {
idMatchPattern = null;
}
ExternalScheme idLikeScheme;
if (msg.hasField(ID_LIKE_SCHEME)) {
String idLikeSchemeStr = deserializer.fieldValueToObject(String.class, msg.getByName(ID_LIKE_SCHEME));
idLikeScheme = ExternalScheme.of(idLikeSchemeStr);
} else {
idLikeScheme = null;
}
Pattern idLikePattern;
if (msg.hasField(ID_LIKE_PATTERN)) {
String idLikePatternStr = deserializer.fieldValueToObject(String.class, msg.getByName(ID_LIKE_PATTERN));
idLikePattern = Pattern.compile(idLikePatternStr);
} else {
idLikePattern = null;
}
Set<String> calcConfigNames;
if (msg.hasField(CALC_CONFIGS)) {
calcConfigNames = Sets.newHashSet();
FudgeMsg calcConfigsMsg = msg.getMessage(CALC_CONFIGS);
for (FudgeField field : calcConfigsMsg) {
calcConfigNames.add(deserializer.fieldValueToObject(String.class, field));
}
} else {
calcConfigNames = null;
}
Set<String> securityTypes;
if (msg.hasField(SECURITY_TYPES)) {
securityTypes = Sets.newHashSet();
FudgeMsg securityTypesMsg = msg.getMessage(SECURITY_TYPES);
for (FudgeField field : securityTypesMsg) {
String securityType = deserializer.fieldValueToObject(String.class, field);
securityTypes.add(securityType);
}
} else {