/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.commodity; import com.opengamma.analytics.financial.commodity.derivative.AgricultureFutureOption; import com.opengamma.analytics.financial.commodity.derivative.CommodityFutureOption; import com.opengamma.analytics.financial.commodity.derivative.EnergyFutureOption; import com.opengamma.analytics.financial.commodity.derivative.MetalFutureOption; import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter; /** * Visitor that delegates to the same method for all commodity future options. * @param <DATA_TYPE> The type of the data * @param <RESULT_TYPE> The type of the result */ public abstract class CommodityFutureOptionSameMethodVisitorAdapter<DATA_TYPE, RESULT_TYPE> extends InstrumentDerivativeVisitorAdapter<DATA_TYPE, RESULT_TYPE> { /** * @param option The commodity future option * @param data The data * @return A result of type RESULT_TYPE */ public abstract RESULT_TYPE visit(CommodityFutureOption<?> option, DATA_TYPE data); @Override public RESULT_TYPE visitAgricultureFutureOption(final AgricultureFutureOption option, final DATA_TYPE data) { return visit(option, data); } @Override public RESULT_TYPE visitEnergyFutureOption(final EnergyFutureOption option, final DATA_TYPE data) { return visit(option, data); } @Override public RESULT_TYPE visitMetalFutureOption(final MetalFutureOption option, final DATA_TYPE data) { return visit(option, data); } }