Map<String, FudgeMsg> securityTypeResult = ReferenceDataProviderUtils.getFields(bundle2Bbgkey.keySet(), BBG_FIELDS, _referenceDataProvider);
for (ExternalIdBundle identifierBundle : identifiers) {
String bbgKey = bundle2Bbgkey.inverse().get(identifierBundle);
if (bbgKey != null) {
FudgeMsg fudgeMsg = securityTypeResult.get(bbgKey);
if (fudgeMsg != null) {
String bbgSecurityType = fudgeMsg.getString(BloombergConstants.FIELD_SECURITY_TYPE);
String futureCategory = fudgeMsg.getString(BloombergConstants.FIELD_FUTURES_CATEGORY);
SecurityType securityType = null;
if (bbgSecurityType != null) {
if (bbgSecurityType.toUpperCase().contains(" FUTURE")) {
s_logger.debug("s_futureTypes {}", s_futureTypes);
securityType = s_futureTypes.get(futureCategory);
} else if (bbgSecurityType.toUpperCase().contains(" OPTION")) {
// Special case handling for EQUITY_INDEX_DIVIDEND_FUTURE_OPTION which we
// are otherwise unable to distinguish from EQUITY_INDEX_FUTURE_OPTION
String name = fudgeMsg.getString(BloombergConstants.FIELD_NAME);
securityType = isEquityIndexFutureDividendOption(futureCategory, name) ?
SecurityType.EQUITY_INDEX_DIVIDEND_FUTURE_OPTION :
s_optionTypes.get(futureCategory);
} else if (bbgSecurityType.toUpperCase().endsWith("SWAP")) {
securityType = s_swapTypes.get(bbgSecurityType);