/**
* 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.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.CDSSecurity;
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.credit.IndexCDSDefinitionSecurity;
import com.opengamma.financial.security.credit.IndexCDSSecurity;
import com.opengamma.financial.security.credit.LegacyCDSSecurity;
import com.opengamma.financial.security.credit.StandardCDSSecurity;
import com.opengamma.financial.security.deposit.ContinuousZeroDepositSecurity;
import com.opengamma.financial.security.deposit.PeriodicZeroDepositSecurity;
import com.opengamma.financial.security.deposit.SimpleZeroDepositSecurity;
import com.opengamma.financial.security.equity.AmericanDepositaryReceiptSecurity;
import com.opengamma.financial.security.equity.EquitySecurity;
import com.opengamma.financial.security.equity.EquityVarianceSwapSecurity;
import com.opengamma.financial.security.equity.ExchangeTradedFundSecurity;
import com.opengamma.financial.security.forward.AgricultureForwardSecurity;
import com.opengamma.financial.security.forward.EnergyForwardSecurity;
import com.opengamma.financial.security.forward.MetalForwardSecurity;
import com.opengamma.financial.security.fra.FRASecurity;
import com.opengamma.financial.security.fra.ForwardRateAgreementSecurity;
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.irs.InterestRateSwapSecurity;
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.EquityWarrantSecurity;
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.ForwardSwapSecurity;
import com.opengamma.financial.security.swap.SwapSecurity;
import com.opengamma.financial.security.swap.YearOnYearInflationSwapSecurity;
import com.opengamma.financial.security.swap.ZeroCouponInflationSwapSecurity;
import com.opengamma.util.ArgumentChecker;
/**
* Adapter for visiting all concrete asset classes.
*
* @param <T> Return type for visitor.
*/
public class FinancialSecurityVisitorAdapter<T> extends FutureSecurityVisitorAdapter<T> implements FinancialSecurityVisitor<T> {
/**
* Creates builder for a {@link FinancialSecurityVisitor}. The underlying visitor
* has no implemented methods.
* @param <T> The return type of the visitor
* @return A builder
*/
public static <T> Builder<T> builder() {
return new Builder<>();
}
/**
* Creates a builder for a {@link FinancialSecurityVisitor} that uses the
* supplied visitor as the initial underlying.
* @param <T> The return type of the visitor
* @param visitor The underlying visitor, not null
* @return A builder
*/
public static <T> Builder<T> builder(final FinancialSecurityVisitor<T> visitor) {
return new Builder<>(visitor);
}
@Override
public T visitBillSecurity(final BillSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCorporateBondSecurity(final CorporateBondSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitGovernmentBondSecurity(final GovernmentBondSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitMunicipalBondSecurity(final MunicipalBondSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitInflationBondSecurity(final InflationBondSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCapFloorCMSSpreadSecurity(final CapFloorCMSSpreadSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCapFloorSecurity(final CapFloorSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCashBalanceSecurity(final CashBalanceSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCashSecurity(final CashSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCashFlowSecurity(final CashFlowSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitContinuousZeroDepositSecurity(final ContinuousZeroDepositSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityOptionSecurity(final EquityOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquitySecurity(final EquitySecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityVarianceSwapSecurity(final EquityVarianceSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFRASecurity(final FRASecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitForwardRateAgreementSecurity(final ForwardRateAgreementSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFXBarrierOptionSecurity(final FXBarrierOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFXDigitalOptionSecurity(final FXDigitalOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFXForwardSecurity(final FXForwardSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFXOptionSecurity(final FXOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitNonDeliverableFXDigitalOptionSecurity(final NonDeliverableFXDigitalOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitNonDeliverableFXForwardSecurity(final NonDeliverableFXForwardSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitPeriodicZeroDepositSecurity(final PeriodicZeroDepositSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitSimpleZeroDepositSecurity(final SimpleZeroDepositSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitForwardSwapSecurity(final ForwardSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitSwapSecurity(final SwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitSwaptionSecurity(final SwaptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFxFutureOptionSecurity(final FxFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitBondFutureOptionSecurity(final BondFutureOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitAgricultureForwardSecurity(final AgricultureForwardSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEnergyForwardSecurity(final EnergyForwardSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitMetalForwardSecurity(final MetalForwardSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCDSSecurity(final CDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitStandardVanillaCDSSecurity(final StandardVanillaCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitStandardFixedRecoveryCDSSecurity(final StandardFixedRecoveryCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitStandardRecoveryLockCDSSecurity(final StandardRecoveryLockCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitLegacyVanillaCDSSecurity(final LegacyVanillaCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitLegacyFixedRecoveryCDSSecurity(final LegacyFixedRecoveryCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitLegacyRecoveryLockCDSSecurity(final LegacyRecoveryLockCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCreditDefaultSwapIndexDefinitionSecurity(final CreditDefaultSwapIndexDefinitionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitCreditDefaultSwapOptionSecurity(final CreditDefaultSwapOptionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitZeroCouponInflationSwapSecurity(final ZeroCouponInflationSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitYearOnYearInflationSwapSecurity(final YearOnYearInflationSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitInterestRateSwapSecurity(final InterestRateSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFXVolatilitySwapSecurity(final FXVolatilitySwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitExchangeTradedFundSecurity(final ExchangeTradedFundSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitAmericanDepositaryReceiptSecurity(final AmericanDepositaryReceiptSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityWarrantSecurity(final EquityWarrantSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitFloatingRateNoteSecurity(final FloatingRateNoteSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitEquityTotalReturnSwapSecurity(final EquityTotalReturnSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitBondTotalReturnSwapSecurity(final BondTotalReturnSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitBillTotalReturnSwapSecurity(BillTotalReturnSwapSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitStandardCDSSecurity(final StandardCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitLegacyCDSSecurity(final LegacyCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitIndexCDSSecurity(final IndexCDSSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
@Override
public T visitIndexCDSDefinitionSecurity(final IndexCDSDefinitionSecurity security) {
throw new UnsupportedOperationException(getUnsupportedOperationMessage(getClass(), security));
}
/**
* Generic message for unsupported methods in FinancialSecurityVisitor implementations
*
* @param clazz the implementation class, not null
* @param security the financial security, not null
* @return the message, not null;
*/
public static String getUnsupportedOperationMessage(final Class<?> clazz, final FinancialSecurity security) {
ArgumentChecker.notNull(clazz, "implementation class");
ArgumentChecker.notNull(security, "financial security");
return "This visitor (" + clazz.getName() + ") does not support " + security.getClass().getName() + " security.";
}
/**
* Builder for the visitor adapter.
*
* @param <T> Return type for the visitor
*/
public static class Builder<T> {
/**
* Creates a builder with an underlying visitor that has no methods implemented.
*/
protected Builder() {
_visitor = new FinancialSecurityVisitorAdapter<>();
}
/**
* Creates a builder with this underlying visitor.
* @param visitor The visitor, not null
*/
protected Builder(final FinancialSecurityVisitor<T> visitor) {
_visitor = visitor;
}
private FinancialSecurityVisitor<T> _visitor;
public Builder<T> billSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitBillSecurity(final BillSecurity security) {
return visitor.visitBillSecurity(security);
}
};
return this;
}
public Builder<T> municipalBondSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMunicipalBondSecurity(final MunicipalBondSecurity security) {
return visitor.visitMunicipalBondSecurity(security);
}
};
return this;
}
public Builder<T> governmentBondSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitGovernmentBondSecurity(final GovernmentBondSecurity security) {
return visitor.visitGovernmentBondSecurity(security);
}
};
return this;
}
public Builder<T> corporateBondSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCorporateBondSecurity(final CorporateBondSecurity security) {
return visitor.visitCorporateBondSecurity(security);
}
};
return this;
}
public Builder<T> inflationBondSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitInflationBondSecurity(final InflationBondSecurity security) {
return visitor.visitInflationBondSecurity(security);
}
};
return this;
}
public Builder<T> cashBalanceSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCashBalanceSecurity(final CashBalanceSecurity security) {
return visitor.visitCashBalanceSecurity(security);
}
};
return this;
}
public Builder<T> cashSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCashSecurity(final CashSecurity security) {
return visitor.visitCashSecurity(security);
}
};
return this;
}
public Builder<T> cashFlowSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCashFlowSecurity(final CashFlowSecurity security) {
return visitor.visitCashFlowSecurity(security);
}
};
return this;
}
public Builder<T> deliverableSwapFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitDeliverableSwapFutureSecurity(final DeliverableSwapFutureSecurity security) {
return visitor.visitDeliverableSwapFutureSecurity(security);
}
};
return this;
}
public Builder<T> equitySecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquitySecurity(final EquitySecurity security) {
return visitor.visitEquitySecurity(security);
}
};
return this;
}
public Builder<T> fraSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFRASecurity(final FRASecurity security) {
return visitor.visitFRASecurity(security);
}
@Override
public T visitForwardRateAgreementSecurity(final ForwardRateAgreementSecurity security) {
return visitor.visitForwardRateAgreementSecurity(security);
}
};
return this;
}
public Builder<T> swapSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSwapSecurity(final SwapSecurity security) {
return visitor.visitSwapSecurity(security);
}
@Override
public T visitInterestRateSwapSecurity(final InterestRateSwapSecurity security) {
return visitor.visitInterestRateSwapSecurity(security);
}
};
return this;
}
public Builder<T> equityIndexOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
return visitor.visitEquityIndexOptionSecurity(security);
}
};
return this;
}
public Builder<T> standardVanillaCDSSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStandardVanillaCDSSecurity(final StandardVanillaCDSSecurity security) {
return visitor.visitStandardVanillaCDSSecurity(security);
}
};
return this;
}
public Builder<T> legacyVanillaCDSSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitLegacyVanillaCDSSecurity(final LegacyVanillaCDSSecurity security) {
return visitor.visitLegacyVanillaCDSSecurity(security);
}
};
return this;
}
public Builder<T> creditDefaultSwapOptionSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCreditDefaultSwapOptionSecurity(final CreditDefaultSwapOptionSecurity security) {
return visitor.visitCreditDefaultSwapOptionSecurity(security);
}
};
return this;
}
public Builder<T> creditDefaultSwapIndexSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) {
return visitor.visitCreditDefaultSwapIndexSecurity(security);
}
};
return this;
}
public Builder<T> equityIndexDividendFutureOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) {
return visitor.visitEquityIndexDividendFutureOptionSecurity(security);
}
};
return this;
}
public Builder<T> equityIndexFutureOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) {
return visitor.visitEquityIndexFutureOptionSecurity(security);
}
};
return this;
}
public Builder<T> equityOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityOptionSecurity(final EquityOptionSecurity security) {
return visitor.visitEquityOptionSecurity(security);
}
};
return this;
}
public Builder<T> equityBarrierOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) {
return visitor.visitEquityBarrierOptionSecurity(security);
}
};
return this;
}
public Builder<T> fxOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXOptionSecurity(final FXOptionSecurity security) {
return visitor.visitFXOptionSecurity(security);
}
};
return this;
}
public Builder<T> nonDeliverableFxOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) {
return visitor.visitNonDeliverableFXOptionSecurity(security);
}
};
return this;
}
public Builder<T> swaptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSwaptionSecurity(final SwaptionSecurity security) {
return visitor.visitSwaptionSecurity(security);
}
};
return this;
}
public Builder<T> irfutureOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) {
return visitor.visitIRFutureOptionSecurity(security);
}
};
return this;
}
public Builder<T> fxBarrierOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXBarrierOptionSecurity(final FXBarrierOptionSecurity security) {
return visitor.visitFXBarrierOptionSecurity(security);
}
};
return this;
}
public Builder<T> fxDigitalOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXDigitalOptionSecurity(final FXDigitalOptionSecurity security) {
return visitor.visitFXDigitalOptionSecurity(security);
}
};
return this;
}
public Builder<T> fxNonDeliverableDigitalOptionVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXDigitalOptionSecurity(final NonDeliverableFXDigitalOptionSecurity security) {
return visitor.visitNonDeliverableFXDigitalOptionSecurity(security);
}
};
return this;
}
public Builder<T> fxForwardVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXForwardSecurity(final FXForwardSecurity security) {
return visitor.visitFXForwardSecurity(security);
}
};
return this;
}
public Builder<T> nonDeliverableFxForwardVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXForwardSecurity(final NonDeliverableFXForwardSecurity security) {
return visitor.visitNonDeliverableFXForwardSecurity(security);
}
};
return this;
}
public Builder<T> capFloorVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCapFloorSecurity(final CapFloorSecurity security) {
return visitor.visitCapFloorSecurity(security);
}
};
return this;
}
public Builder<T> capFloorCMSSpreadVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCapFloorCMSSpreadSecurity(final CapFloorCMSSpreadSecurity security) {
return visitor.visitCapFloorCMSSpreadSecurity(security);
}
};
return this;
}
public Builder<T> equityVarianceSwapSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityVarianceSwapSecurity(final EquityVarianceSwapSecurity security) {
return visitor.visitEquityVarianceSwapSecurity(security);
}
};
return this;
}
public Builder<T> simpleZeroDepositSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSimpleZeroDepositSecurity(final SimpleZeroDepositSecurity security) {
return visitor.visitSimpleZeroDepositSecurity(security);
}
};
return this;
}
public Builder<T> periodicZeroDepositSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitPeriodicZeroDepositSecurity(final PeriodicZeroDepositSecurity security) {
return visitor.visitPeriodicZeroDepositSecurity(security);
}
};
return this;
}
public Builder<T> continuousZeroDepositSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitContinuousZeroDepositSecurity(final ContinuousZeroDepositSecurity security) {
return visitor.visitContinuousZeroDepositSecurity(security);
}
};
return this;
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public Builder<T> bondFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitBondFutureSecurity(final BondFutureSecurity security) {
return visitor.visitBondFutureSecurity(security);
}
};
return this;
}
public Builder<T> commodityFutureOptionSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity security) {
return visitor.visitCommodityFutureOptionSecurity(security);
}
};
return this;
}
public Builder<T> energyFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEnergyFutureSecurity(final EnergyFutureSecurity security) {
return visitor.visitEnergyFutureSecurity(security);
}
};
return this;
}
public Builder<T> equityIndexDividendFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) {
return visitor.visitEquityIndexDividendFutureSecurity(security);
}
};
return this;
}
public Builder<T> fxFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXFutureSecurity(final FXFutureSecurity security) {
return visitor.visitFXFutureSecurity(security);
}
};
return this;
}
public Builder<T> indexFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitIndexFutureSecurity(final IndexFutureSecurity security) {
return visitor.visitIndexFutureSecurity(security);
}
};
return this;
}
public Builder<T> metalFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMetalFutureSecurity(final MetalFutureSecurity security) {
return visitor.visitMetalFutureSecurity(security);
}
};
return this;
}
public Builder<T> stockFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStockFutureSecurity(final StockFutureSecurity security) {
return visitor.visitStockFutureSecurity(security);
}
};
return this;
}
public Builder<T> agricultureFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) {
return visitor.visitAgricultureFutureSecurity(security);
}
};
return this;
}
public Builder<T> equityFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityFutureSecurity(final EquityFutureSecurity security) {
return visitor.visitEquityFutureSecurity(security);
}
};
return this;
}
public Builder<T> forwardSwapSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitForwardSwapSecurity(final ForwardSwapSecurity security) {
return visitor.visitForwardSwapSecurity(security);
}
};
return this;
}
public Builder<T> interestRateFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) {
return visitor.visitInterestRateFutureSecurity(security);
}
};
return this;
}
public Builder<T> federalFundsFutureSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFederalFundsFutureSecurity(final FederalFundsFutureSecurity security) {
return visitor.visitFederalFundsFutureSecurity(security);
}
};
return this;
}
public Builder<T> agricultureForwardSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitAgricultureForwardSecurity(final AgricultureForwardSecurity security) {
return visitor.visitAgricultureForwardSecurity(security);
}
};
return this;
}
public Builder<T> energyForwardSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEnergyForwardSecurity(final EnergyForwardSecurity security) {
return visitor.visitEnergyForwardSecurity(security);
}
};
return this;
}
public Builder<T> metalForwardSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMetalForwardSecurity(final MetalForwardSecurity security) {
return visitor.visitMetalForwardSecurity(security);
}
};
return this;
}
// simple values
public Builder<T> municipalBondSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMunicipalBondSecurity(final MunicipalBondSecurity security) {
return value;
}
};
return this;
}
public Builder<T> governmentBondSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitGovernmentBondSecurity(final GovernmentBondSecurity security) {
return value;
}
};
return this;
}
public Builder<T> corporateBondSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCorporateBondSecurity(final CorporateBondSecurity security) {
return value;
}
};
return this;
}
public Builder<T> cashBalanceSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCashBalanceSecurity(final CashBalanceSecurity security) {
return value;
}
};
return this;
}
public Builder<T> cashSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCashSecurity(final CashSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equitySecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquitySecurity(final EquitySecurity security) {
return value;
}
};
return this;
}
public Builder<T> bondFutureOptionSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitBondFutureOptionSecurity(final BondFutureOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fraSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFRASecurity(final FRASecurity security) {
return value;
}
};
return this;
}
public Builder<T> swapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSwapSecurity(final SwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityIndexOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexOptionSecurity(final EquityIndexOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityIndexDividendFutureOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexDividendFutureOptionSecurity(final EquityIndexDividendFutureOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityOptionSecurity(final EquityOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityIndexFutureOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexFutureOptionSecurity(final EquityIndexFutureOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityBarrierOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityBarrierOptionSecurity(final EquityBarrierOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXOptionSecurity(final FXOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> nonDeliverableFxOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXOptionSecurity(final NonDeliverableFXOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> swaptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSwaptionSecurity(final SwaptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> irfutureOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitIRFutureOptionSecurity(final IRFutureOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxBarrierOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXBarrierOptionSecurity(final FXBarrierOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxDigitalOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXDigitalOptionSecurity(final FXDigitalOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxNonDeliverableDigitalOptionVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXDigitalOptionSecurity(final NonDeliverableFXDigitalOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxForwardVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXForwardSecurity(final FXForwardSecurity security) {
return value;
}
};
return this;
}
public Builder<T> nonDeliverableFxForwardVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitNonDeliverableFXForwardSecurity(final NonDeliverableFXForwardSecurity security) {
return value;
}
};
return this;
}
public Builder<T> capFloorVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCapFloorSecurity(final CapFloorSecurity security) {
return value;
}
};
return this;
}
public Builder<T> capFloorCMSSpreadVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCapFloorCMSSpreadSecurity(final CapFloorCMSSpreadSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityVarianceSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityVarianceSwapSecurity(final EquityVarianceSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> simpleZeroDepositSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitSimpleZeroDepositSecurity(final SimpleZeroDepositSecurity security) {
return value;
}
};
return this;
}
public Builder<T> periodicZeroDepositSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitPeriodicZeroDepositSecurity(final PeriodicZeroDepositSecurity security) {
return value;
}
};
return this;
}
public Builder<T> continuousZeroDepositSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitContinuousZeroDepositSecurity(final ContinuousZeroDepositSecurity security) {
return value;
}
};
return this;
}
public Builder<T> zeroCouponInflationSwapSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitZeroCouponInflationSwapSecurity(final ZeroCouponInflationSwapSecurity security) {
return visitor.visitZeroCouponInflationSwapSecurity(security);
}
};
return this;
}
public Builder<T> yearOnYearInflationSwapSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitYearOnYearInflationSwapSecurity(final YearOnYearInflationSwapSecurity security) {
return visitor.visitYearOnYearInflationSwapSecurity(security);
}
};
return this;
}
public Builder<T> zeroCouponInflationSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitZeroCouponInflationSwapSecurity(final ZeroCouponInflationSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> yearOnYearInflationSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitYearOnYearInflationSwapSecurity(final YearOnYearInflationSwapSecurity security) {
return value;
}
};
return this;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public Builder<T> bondFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitBondFutureSecurity(final BondFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> commodityFutureOptionSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCommodityFutureOptionSecurity(final CommodityFutureOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> energyFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEnergyFutureSecurity(final EnergyFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityIndexDividendFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXFutureSecurity(final FXFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> indexFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitIndexFutureSecurity(final IndexFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> metalFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMetalFutureSecurity(final MetalFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> stockFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStockFutureSecurity(final StockFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> agricultureFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityFutureSecurity(final EquityFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> forwardSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitForwardSwapSecurity(final ForwardSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> interestRateFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> federalFundsFutureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFederalFundsFutureSecurity(final FederalFundsFutureSecurity security) {
return value;
}
};
return this;
}
public Builder<T> agricultureForwardSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitAgricultureForwardSecurity(final AgricultureForwardSecurity security) {
return value;
}
};
return this;
}
public Builder<T> energyForwardSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEnergyForwardSecurity(final EnergyForwardSecurity security) {
return value;
}
};
return this;
}
public Builder<T> metalForwardSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitMetalForwardSecurity(final MetalForwardSecurity security) {
return value;
}
};
return this;
}
public Builder<T> cdsSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCDSSecurity(final CDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> standardVanillaCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStandardVanillaCDSSecurity(final StandardVanillaCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> standardFixedRecoveryCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStandardFixedRecoveryCDSSecurity(final StandardFixedRecoveryCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> standardRecoveryLockCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitStandardRecoveryLockCDSSecurity(final StandardRecoveryLockCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> legacyVanillaCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitLegacyVanillaCDSSecurity(final LegacyVanillaCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> legacyFixedRecoveryCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitLegacyFixedRecoveryCDSSecurity(final LegacyFixedRecoveryCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> legacyRecoveryLockCDSSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitLegacyRecoveryLockCDSSecurity(final LegacyRecoveryLockCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> creditDefaultSwapOptionSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCreditDefaultSwapOptionSecurity(final CreditDefaultSwapOptionSecurity security) {
return value;
}
};
return this;
}
public Builder<T> creditDefaultSwapIndexSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) {
return value;
}
};
return this;
}
public Builder<T> interestRateSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitInterestRateSwapSecurity(final InterestRateSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> fxVolatilitySwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFXVolatilitySwapSecurity(final FXVolatilitySwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> exchangeTradedFundSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitExchangeTradedFundSecurity(final ExchangeTradedFundSecurity security) {
return value;
}
};
return this;
}
public Builder<T> americanDepositaryReceiptSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitAmericanDepositaryReceiptSecurity(final AmericanDepositaryReceiptSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityWarrantSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityWarrantSecurity(final EquityWarrantSecurity security) {
return value;
}
};
return this;
}
public Builder<T> floatingRateNoteSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitFloatingRateNoteSecurity(final FloatingRateNoteSecurity security) {
return value;
}
};
return this;
}
public Builder<T> equityTotalReturnSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitEquityTotalReturnSwapSecurity(final EquityTotalReturnSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> bondTotalReturnSwapSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitBondTotalReturnSwapSecurity(final BondTotalReturnSwapSecurity security) {
return value;
}
};
return this;
}
public Builder<T> creditSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitIndexCDSDefinitionSecurity(final IndexCDSDefinitionSecurity security) {
return value;
}
@Override
public T visitStandardCDSSecurity(final StandardCDSSecurity security) {
return value;
}
@Override
public T visitLegacyCDSSecurity(final LegacyCDSSecurity security) {
return value;
}
@Override
public T visitIndexCDSSecurity(final IndexCDSSecurity security) {
return value;
}
};
return this;
}
public Builder<T> futureSecurityVisitor(final T value) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitInterestRateFutureSecurity(final InterestRateFutureSecurity security) {
return value;
}
@Override
public T visitAgricultureFutureSecurity(final AgricultureFutureSecurity security) {
return value;
}
@Override
public T visitBondFutureSecurity(final BondFutureSecurity security) {
return value;
}
@Override
public T visitEnergyFutureSecurity(final EnergyFutureSecurity security) {
return value;
}
@Override
public T visitEquityFutureSecurity(final EquityFutureSecurity security) {
return value;
}
@Override
public T visitEquityIndexDividendFutureSecurity(final EquityIndexDividendFutureSecurity security) {
return value;
}
@Override
public T visitFXFutureSecurity(final FXFutureSecurity security) {
return value;
}
@Override
public T visitIndexFutureSecurity(final IndexFutureSecurity security) {
return value;
}
@Override
public T visitMetalFutureSecurity(final MetalFutureSecurity security) {
return value;
}
@Override
public T visitStockFutureSecurity(final StockFutureSecurity security) {
return value;
}
};
return this;
}
// bulk overriders
public Builder<T> bondSecurityVisitor(final FinancialSecurityVisitor<T> visitor) {
_visitor = new FinancialSecurityVisitorDelegate<T>(_visitor) {
@Override
public T visitGovernmentBondSecurity(final GovernmentBondSecurity security) {
return visitor.visitGovernmentBondSecurity(security);
}
@Override
public T visitMunicipalBondSecurity(final MunicipalBondSecurity security) {
return visitor.visitMunicipalBondSecurity(security);
}
@Override
public T visitCorporateBondSecurity(final CorporateBondSecurity security) {
return visitor.visitCorporateBondSecurity(security);
}
@Override
public T visitInflationBondSecurity(final InflationBondSecurity security) {
return visitor.visitInflationBondSecurity(security);
}
};
return this;
}
public Builder<T> sameValueForSecurityVisitor(final T value) {
_visitor = new SameValueVisitor<T>(_visitor, value);
return this;
}
/**
* Creates the {@link FinancialSecurityVisitor}
* @return The visitor
*/
public FinancialSecurityVisitor<T> create() {
return new FinancialSecurityVisitorDelegate<>(_visitor);
}
}
}