/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.web.security; import com.opengamma.financial.security.FinancialSecurityVisitorSameValueAdapter; import com.opengamma.financial.security.bond.BillSecurity; import com.opengamma.financial.security.bond.CorporateBondSecurity; import com.opengamma.financial.security.bond.FloatingRateNoteSecurity; import com.opengamma.financial.security.bond.GovernmentBondSecurity; import com.opengamma.financial.security.bond.InflationBondSecurity; import com.opengamma.financial.security.bond.MunicipalBondSecurity; import com.opengamma.financial.security.capfloor.CapFloorCMSSpreadSecurity; import com.opengamma.financial.security.capfloor.CapFloorSecurity; import com.opengamma.financial.security.cash.CashBalanceSecurity; import com.opengamma.financial.security.cash.CashSecurity; import com.opengamma.financial.security.cashflow.CashFlowSecurity; import com.opengamma.financial.security.cds.CreditDefaultSwapIndexDefinitionSecurity; import com.opengamma.financial.security.cds.CreditDefaultSwapIndexSecurity; import com.opengamma.financial.security.cds.LegacyFixedRecoveryCDSSecurity; import com.opengamma.financial.security.cds.LegacyRecoveryLockCDSSecurity; import com.opengamma.financial.security.cds.LegacyVanillaCDSSecurity; import com.opengamma.financial.security.cds.StandardFixedRecoveryCDSSecurity; import com.opengamma.financial.security.cds.StandardRecoveryLockCDSSecurity; import com.opengamma.financial.security.cds.StandardVanillaCDSSecurity; import com.opengamma.financial.security.equity.EquitySecurity; import com.opengamma.financial.security.equity.EquityVarianceSwapSecurity; import com.opengamma.financial.security.fra.FRASecurity; import com.opengamma.financial.security.future.AgricultureFutureSecurity; import com.opengamma.financial.security.future.BondFutureSecurity; import com.opengamma.financial.security.future.DeliverableSwapFutureSecurity; import com.opengamma.financial.security.future.EnergyFutureSecurity; import com.opengamma.financial.security.future.EquityFutureSecurity; import com.opengamma.financial.security.future.EquityIndexDividendFutureSecurity; import com.opengamma.financial.security.future.FXFutureSecurity; import com.opengamma.financial.security.future.FederalFundsFutureSecurity; import com.opengamma.financial.security.future.IndexFutureSecurity; import com.opengamma.financial.security.future.InterestRateFutureSecurity; import com.opengamma.financial.security.future.MetalFutureSecurity; import com.opengamma.financial.security.future.StockFutureSecurity; import com.opengamma.financial.security.fx.FXForwardSecurity; import com.opengamma.financial.security.fx.FXVolatilitySwapSecurity; import com.opengamma.financial.security.fx.NonDeliverableFXForwardSecurity; import com.opengamma.financial.security.option.BondFutureOptionSecurity; import com.opengamma.financial.security.option.CommodityFutureOptionSecurity; import com.opengamma.financial.security.option.CreditDefaultSwapOptionSecurity; import com.opengamma.financial.security.option.EquityBarrierOptionSecurity; import com.opengamma.financial.security.option.EquityIndexDividendFutureOptionSecurity; import com.opengamma.financial.security.option.EquityIndexFutureOptionSecurity; import com.opengamma.financial.security.option.EquityIndexOptionSecurity; import com.opengamma.financial.security.option.EquityOptionSecurity; import com.opengamma.financial.security.option.FXBarrierOptionSecurity; import com.opengamma.financial.security.option.FXDigitalOptionSecurity; import com.opengamma.financial.security.option.FXOptionSecurity; import com.opengamma.financial.security.option.FxFutureOptionSecurity; import com.opengamma.financial.security.option.IRFutureOptionSecurity; import com.opengamma.financial.security.option.NonDeliverableFXDigitalOptionSecurity; import com.opengamma.financial.security.option.NonDeliverableFXOptionSecurity; import com.opengamma.financial.security.option.SwaptionSecurity; import com.opengamma.financial.security.swap.BillTotalReturnSwapSecurity; import com.opengamma.financial.security.swap.BondTotalReturnSwapSecurity; import com.opengamma.financial.security.swap.EquityTotalReturnSwapSecurity; import com.opengamma.financial.security.swap.SwapSecurity; import com.opengamma.financial.security.swap.YearOnYearInflationSwapSecurity; import com.opengamma.financial.security.swap.ZeroCouponInflationSwapSecurity; /** * Returns Freemarker template filename for a given security type. */ public class SecurityTemplateNameProvider extends FinancialSecurityVisitorSameValueAdapter<String> { /** * Default constructor. */ SecurityTemplateNameProvider() { super("default-security.ftl"); } @Override public String visitEquitySecurity(final EquitySecurity security) { return "equity.ftl"; } @Override public String visitFRASecurity(final FRASecurity security) { return "fra.ftl"; } @Override public String visitCashSecurity(final CashSecurity security) { return "cash.ftl"; } @Override public String visitCashFlowSecurity(final CashFlowSecurity security) { return "cashflow.ftl"; } @Override public String visitCorporateBondSecurity(final CorporateBondSecurity security) { return getBond(); } @Override public String visitInflationBondSecurity(InflationBondSecurity security) { return getBond(); } @Override public String visitGovernmentBondSecurity(final GovernmentBondSecurity security) { return getBond(); } @Override public String visitMunicipalBondSecurity(final MunicipalBondSecurity security) { return getBond(); } @Override public String visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) { return getFuture(); } @Override public String visitBondFutureSecurity(final BondFutureSecurity security) { return getFuture(); } @Override public String visitEnergyFutureSecurity(final EnergyFutureSecurity security) { return getFuture(); } @Override public String visitEquityFutureSecurity(final EquityFutureSecurity security) { return getFuture(); } @Override public String visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) { return getFuture(); } @Override public String visitFXFutureSecurity(final FXFutureSecurity security) { return getFuture(); } @Override public String visitIndexFutureSecurity(final IndexFutureSecurity security) { return getFuture(); } @Override public String visitMetalFutureSecurity(final MetalFutureSecurity security) { return getFuture(); } @Override public String visitStockFutureSecurity(final StockFutureSecurity security) { return getFuture(); } @Override public String visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) { return getFuture(); } @Override public String visitDeliverableSwapFutureSecurity(final DeliverableSwapFutureSecurity security) { return getFuture(); } @Override public String visitEquityOptionSecurity(final EquityOptionSecurity security) { return "equity-option.ftl"; } @Override public String visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) { return "equity-barrier-option.ftl"; } @Override public String visitFXForwardSecurity(final FXForwardSecurity security) { return "fxforward.ftl"; } @Override public String visitNonDeliverableFXForwardSecurity(final NonDeliverableFXForwardSecurity security) { return "nondeliverable-fxforward.ftl"; } @Override public String visitSwapSecurity(final SwapSecurity security) { return "swap.ftl"; } @Override public String visitFXBarrierOptionSecurity(final FXBarrierOptionSecurity security) { return "fxbarrier-option.ftl"; } @Override public String visitFXOptionSecurity(final FXOptionSecurity security) { return "fxoption.ftl"; } @Override public String visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) { return "equity-index-option.ftl"; } @Override public String visitFXDigitalOptionSecurity(final FXDigitalOptionSecurity security) { return "fxdigital-option.ftl"; } @Override public String visitNonDeliverableFXDigitalOptionSecurity(final NonDeliverableFXDigitalOptionSecurity security) { return "nondeliverable-fxdigital-option.ftl"; } @Override public String visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) { return "nondeliverable-fxoption.ftl"; } @Override public String visitSwaptionSecurity(final SwaptionSecurity security) { return "swaption.ftl"; } @Override public String visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) { return "equity-index-future-option.ftl"; } @Override public String visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) { return "irfuture-option.ftl"; } @Override public String visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity security) { return "commodity-future-option.ftl"; } @Override public String visitFxFutureOptionSecurity(final FxFutureOptionSecurity security) { return "fxfuture-option.ftl"; } @Override public String visitBondFutureOptionSecurity(final BondFutureOptionSecurity security) { return "bond-future-option.ftl"; } @Override public String visitCapFloorCMSSpreadSecurity(final CapFloorCMSSpreadSecurity security) { return "capfloor-cms-spread.ftl"; } @Override public String visitCapFloorSecurity(final CapFloorSecurity security) { return "capfloor.ftl"; } @Override public String visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) { return "equity-index-dividend-future-option.ftl"; } @Override public String visitEquityVarianceSwapSecurity(final EquityVarianceSwapSecurity security) { return "equity-variance-swap.ftl"; } @Override public String visitCreditDefaultSwapIndexDefinitionSecurity(final CreditDefaultSwapIndexDefinitionSecurity security) { return "cds-index-definition.ftl"; } @Override public String visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) { return "cds-index.ftl"; } @Override public String visitStandardFixedRecoveryCDSSecurity(final StandardFixedRecoveryCDSSecurity security) { return "standard-fixed-recovery-cds.ftl"; } @Override public String visitStandardVanillaCDSSecurity(final StandardVanillaCDSSecurity security) { return "standard-vanilla-cds.ftl"; } @Override public String visitStandardRecoveryLockCDSSecurity(final StandardRecoveryLockCDSSecurity security) { return "standard-recovery-lock-cds.ftl"; } @Override public String visitLegacyVanillaCDSSecurity(final LegacyVanillaCDSSecurity security) { return "legacy-vanilla-cds.ftl"; } @Override public String visitLegacyFixedRecoveryCDSSecurity(final LegacyFixedRecoveryCDSSecurity security) { return "legacy-fixed-recovery-cds.ftl"; } @Override public String visitLegacyRecoveryLockCDSSecurity(final LegacyRecoveryLockCDSSecurity security) { return "legacy-recovery-lock-cds.ftl"; } @Override public String visitCreditDefaultSwapOptionSecurity(final CreditDefaultSwapOptionSecurity security) { return "cds-option.ftl"; } @Override public String visitFederalFundsFutureSecurity(final FederalFundsFutureSecurity security) { return getFuture(); } @Override public String visitZeroCouponInflationSwapSecurity(final ZeroCouponInflationSwapSecurity security) { return "swap.ftl"; } @Override public String visitYearOnYearInflationSwapSecurity(final YearOnYearInflationSwapSecurity security) { return "swap.ftl"; } @Override public String visitBillSecurity(final BillSecurity security) { return "bill.ftl"; } @Override public String visitFloatingRateNoteSecurity(final FloatingRateNoteSecurity security) { return "floating-rate-note.ftl"; } @Override public String visitFXVolatilitySwapSecurity(final FXVolatilitySwapSecurity security) { return "fx-volatility-swap.ftl"; } @Override public String visitCashBalanceSecurity(final CashBalanceSecurity security) { return "cash-balance.ftl"; } @Override public String visitBondTotalReturnSwapSecurity(final BondTotalReturnSwapSecurity security) { return "bond-total-return-swap.ftl"; } @Override public String visitEquityTotalReturnSwapSecurity(final EquityTotalReturnSwapSecurity security) { return "equity-total-return-swap.ftl"; } @Override public String visitBillTotalReturnSwapSecurity(final BillTotalReturnSwapSecurity security) { return "bill-total-return-swap.ftl"; } /** * Gets the template for all bonds. * @return The bond template */ private String getBond() { return "bond.ftl"; } /** * Gets the template for all futures. * @return The future template */ private String getFuture() { return "future.ftl"; } }