/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.security; import com.opengamma.engine.value.ValueRequirementNames; import com.opengamma.financial.analytics.model.equity.SecurityMarketPriceFunction; import com.opengamma.financial.security.bond.CorporateBondSecurity; import com.opengamma.financial.security.bond.GovernmentBondSecurity; import com.opengamma.financial.security.bond.MunicipalBondSecurity; import com.opengamma.financial.security.equity.EquitySecurity; import com.opengamma.financial.security.future.BondFutureSecurity; import com.opengamma.financial.security.future.EquityFutureSecurity; import com.opengamma.financial.security.future.EquityIndexDividendFutureSecurity; 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.option.CommodityFutureOptionSecurity; 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.FxFutureOptionSecurity; import com.opengamma.financial.security.option.IRFutureOptionSecurity; /** * This visitor returns true if the FinancialSecurity is market traded. * In our context, this means that a MarketDataRequirementNames.MARKET_VALUE is available * for a security.<p> * When {@link ValueRequirementNames#SECURITY_MARKET_PRICE} is chosen in a View Configuration, * {@link SecurityMarketPriceFunction} provides the price. */ public class MarketSecurityVisitor extends FinancialSecurityVisitorSameValueAdapter<Boolean> { /** * Sets the default return value to false. */ public MarketSecurityVisitor() { super(false); } @Override public Boolean visitMetalFutureSecurity(final MetalFutureSecurity security) { return true; } @Override public Boolean visitIndexFutureSecurity(final IndexFutureSecurity security) { return true; } @Override public Boolean visitEquityFutureSecurity(final EquityFutureSecurity security) { return true; } @Override public Boolean visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) { return true; } @Override public Boolean visitEquitySecurity(final EquitySecurity security) { return true; } @Override public Boolean visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) { return true; } @Override public Boolean visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) { return true; } @Override public Boolean visitEquityOptionSecurity(final EquityOptionSecurity security) { return true; } @Override public Boolean visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) { return true; } @Override public Boolean visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity commodityFutureOptionSecurity) { return true; } @Override public Boolean visitFxFutureOptionSecurity(final FxFutureOptionSecurity security) { return true; } @Override public Boolean visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) { return true; } @Override public Boolean visitBondFutureSecurity(final BondFutureSecurity security) { return true; } @Override public Boolean visitCorporateBondSecurity(final CorporateBondSecurity security) { return true; } @Override public Boolean visitGovernmentBondSecurity(final GovernmentBondSecurity security) { return true; } @Override public Boolean visitMunicipalBondSecurity(final MunicipalBondSecurity security) { return true; } @Override public Boolean visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) { return true; } }