return _includeEmptyCategories;
}
@Override
public String classifyPosition(final Position position) {
final Security security = position.getSecurity();
if (security instanceof FinancialSecurity) {
final FinancialSecurity finSec = (FinancialSecurity) security;
return finSec.accept(new FinancialSecurityVisitor<String>() {
@Override
public String visitGovernmentBondSecurity(final GovernmentBondSecurity security) {
return BONDS;
}
@Override
public String visitCorporateBondSecurity(final CorporateBondSecurity security) {
return BONDS;
}
@Override
public String visitMunicipalBondSecurity(final MunicipalBondSecurity security) {
return BONDS;
}
@Override
public String visitInflationBondSecurity(final InflationBondSecurity security) {
return BONDS;
}
@Override
public String visitCashSecurity(final CashSecurity security) {
return CASH;
}
@Override
public String visitCashFlowSecurity(final CashFlowSecurity security) {
return CASHFLOW;
}
@Override
public String visitEquitySecurity(final EquitySecurity security) {
return EQUITIES;
}
@Override
public String visitFRASecurity(final FRASecurity security) {
return FRAS;
}
@Override
public String visitSwapSecurity(final SwapSecurity security) {
return SWAPS;
}
@Override
public String visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
return EQUITY_INDEX_OPTIONS;
}
@Override
public String visitEquityOptionSecurity(final EquityOptionSecurity equityOptionSecurity) {
return EQUITY_OPTIONS;
}
@Override
public String visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) {
return EQUITY_BARRIER_OPTIONS;
}
@Override
public String visitFXOptionSecurity(final FXOptionSecurity fxOptionSecurity) {
return FX_OPTIONS;
}
@Override
public String visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) {
return NONDELIVERABLE_FX_OPTIONS;
}
@Override
public String visitSwaptionSecurity(final SwaptionSecurity security) {
return SWAPTIONS;
}
@Override
public String visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) {
return IRFUTURE_OPTIONS;
}
@Override
public String visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity commodityFutureOptionSecurity) {
return COMMODITY_FUTURE_OPTIONS;
}
@Override
public String visitFxFutureOptionSecurity(final FxFutureOptionSecurity security) {
return FX_FUTURE_OPTIONS;
}
@Override
public String visitBondFutureOptionSecurity(final BondFutureOptionSecurity bondFutureOptionSecurity) {
return BOND_FUTURE_OPTIONS;
}
@Override
public String visitEquityIndexDividendFutureOptionSecurity(
final EquityIndexDividendFutureOptionSecurity equityIndexDividendFutureOptionSecurity) {
return EQUITY_INDEX_DIVIDEND_FUTURE_OPTIONS;
}
@Override
public String visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity equityIndexFutureOptionSecurity) {
return EQUITY_INDEX_FUTURE_OPTIONS;
}
@Override
public String visitFXBarrierOptionSecurity(final FXBarrierOptionSecurity security) {
return FX_BARRIER_OPTIONS;
}
@Override
public String visitFXDigitalOptionSecurity(final FXDigitalOptionSecurity security) {
return FX_DIGITAL_OPTIONS;
}
@Override
public String visitNonDeliverableFXDigitalOptionSecurity(final NonDeliverableFXDigitalOptionSecurity security) {
return NONDELIVERABLE_FX_DIGITAL_OPTIONS;
}
@Override
public String visitFXForwardSecurity(final FXForwardSecurity security) {
return FX_FORWARDS;
}
@Override
public String visitNonDeliverableFXForwardSecurity(final NonDeliverableFXForwardSecurity security) {
return NONDELIVERABLE_FX_FORWARDS;
}
@Override
public String visitCapFloorSecurity(final CapFloorSecurity security) {
return CAP_FLOOR;
}
@Override
public String visitCapFloorCMSSpreadSecurity(final CapFloorCMSSpreadSecurity security) {
return CAP_FLOOR_CMS_SPREAD;
}
@Override
public String visitEquityVarianceSwapSecurity(final EquityVarianceSwapSecurity security) {
return EQUITY_VARIANCE_SWAPS;
}
@Override
public String visitSimpleZeroDepositSecurity(final SimpleZeroDepositSecurity security) {
throw new UnsupportedOperationException("SimpleZeroDepositSecurity should not be used in a position");
}
@Override
public String visitPeriodicZeroDepositSecurity(final PeriodicZeroDepositSecurity security) {
throw new UnsupportedOperationException("PeriodicZeroDepositSecurity should not be used in a position");
}
@Override
public String visitContinuousZeroDepositSecurity(final ContinuousZeroDepositSecurity security) {
throw new UnsupportedOperationException("ContinuousZeroDepositSecurity should not be used in a position");
}
@Override
public String visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) {
return FUTURES;
}
@Override
public String visitBondFutureSecurity(final BondFutureSecurity security) {
return FUTURES;
}
@Override
public String visitEnergyFutureSecurity(final EnergyFutureSecurity security) {
return FUTURES;
}
@Override
public String visitEquityFutureSecurity(final EquityFutureSecurity security) {
return FUTURES;
}
@Override
public String visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) {
return FUTURES;
}
@Override
public String visitFXFutureSecurity(final FXFutureSecurity security) {
return FUTURES;
}
@Override
public String visitForwardSwapSecurity(final ForwardSwapSecurity security) {
return SWAPS;
}
@Override
public String visitIndexFutureSecurity(final IndexFutureSecurity security) {
return FUTURES;
}
@Override
public String visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) {
return FUTURES;
}
@Override
public String visitFederalFundsFutureSecurity(final FederalFundsFutureSecurity security) {
return FUTURES;
}
@Override
public String visitMetalFutureSecurity(final MetalFutureSecurity security) {
return FUTURES;
}
@Override
public String visitStockFutureSecurity(final StockFutureSecurity security) {
return FUTURES;
}
@Override
public String visitAgricultureForwardSecurity(final AgricultureForwardSecurity security) {
return FORWARDS;
}
@Override
public String visitEnergyForwardSecurity(final EnergyForwardSecurity security) {
return FORWARDS;
}
@Override
public String visitMetalForwardSecurity(final MetalForwardSecurity security) {
return FORWARDS;
}
@Override
public String visitCDSSecurity(final CDSSecurity security) {
return CDS;
}
@Override
public String visitStandardVanillaCDSSecurity(final StandardVanillaCDSSecurity security) {
return CDS;
}
@Override
public String visitStandardRecoveryLockCDSSecurity(final StandardRecoveryLockCDSSecurity security) {
return CDS;
}
@Override
public String visitStandardFixedRecoveryCDSSecurity(final StandardFixedRecoveryCDSSecurity security) {
return CDS;
}
@Override
public String visitLegacyVanillaCDSSecurity(final LegacyVanillaCDSSecurity security) {
return CDS;
}
@Override
public String visitLegacyRecoveryLockCDSSecurity(final LegacyRecoveryLockCDSSecurity security) {
return CDS;
}
@Override
public String visitLegacyFixedRecoveryCDSSecurity(final LegacyFixedRecoveryCDSSecurity security) {
return CDS;
}
@Override
public String visitDeliverableSwapFutureSecurity(final DeliverableSwapFutureSecurity security) {
return DELIVERABLE_SWAP_FUTURES;
}
@Override
public String visitCreditDefaultSwapIndexDefinitionSecurity(final CreditDefaultSwapIndexDefinitionSecurity security) {
return CDX;
}
@Override
public String visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) {
return CDX;
}
@Override
public String visitCreditDefaultSwapOptionSecurity(final CreditDefaultSwapOptionSecurity security) {
return CREDIT_DEFAULT_SWAP_OPTIONS;
}
@Override
public String visitZeroCouponInflationSwapSecurity(final ZeroCouponInflationSwapSecurity security) {
return INFLATION_SWAPS;
}
@Override
public String visitYearOnYearInflationSwapSecurity(final YearOnYearInflationSwapSecurity security) {
return INFLATION_SWAPS;
}
});
} else {
if (security instanceof RawSecurity && security.getSecurityType().equals(SecurityEntryData.EXTERNAL_SENSITIVITIES_SECURITY_TYPE)) {
if (security.getAttributes().containsKey("Security Type")) {
return security.getAttributes().get("Security Type");
}
}
return UNKNOWN;
}
}