/*
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.core.security.Security;
import com.opengamma.financial.security.equity.EquitySecurity;
import com.opengamma.financial.security.future.AgricultureFutureSecurity;
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.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.option.EquityBarrierOptionSecurity;
import com.opengamma.financial.security.option.EquityIndexFutureOptionSecurity;
import com.opengamma.financial.security.option.EquityIndexOptionSecurity;
import com.opengamma.financial.security.option.EquityOptionSecurity;
import com.opengamma.id.ExternalId;
/**
* Get the exchange for a security, null if not applicable
*/
public class ExchangeVisitor extends FinancialSecurityVisitorSameValueAdapter<ExternalId> {
public ExchangeVisitor() {
super(null);
}
@Override
public ExternalId visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getExchange());
}
@Override
public ExternalId visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getExchange());
}
@Override
public ExternalId visitEquityOptionSecurity(final EquityOptionSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getExchange());
}
@Override
public ExternalId visitEquitySecurity(final EquitySecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getExchangeCode());
}
@Override
public ExternalId visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitBondFutureSecurity(final BondFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitEquityFutureSecurity(final EquityFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitFXFutureSecurity(final FXFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitIndexFutureSecurity(final IndexFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitFederalFundsFutureSecurity(final FederalFundsFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitMetalFutureSecurity(final MetalFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitStockFutureSecurity(final StockFutureSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getTradingExchange());
}
@Override
public ExternalId visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) {
return ExternalId.of(ExternalSchemes.ISO_MIC, security.getExchange());
}
}