/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.simpleinstruments.derivative; /** * * @param <S> The type of the data * @param <T> The return type of the calculation */ public interface SimpleInstrumentVisitor<S, T> { T visit(final SimpleInstrument derivative, final S data); T visitSimpleFuture(final SimpleFuture future, final S data); T visitSimpleFXFuture(final SimpleFXFuture future, final S data); T visit(final SimpleInstrument derivative); T visitSimpleFuture(final SimpleFuture future); T visitSimpleFXFuture(final SimpleFXFuture future); }