/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.commodity.derivative; import com.opengamma.analytics.financial.interestrate.InstrumentDerivativeVisitorAdapter; import com.opengamma.analytics.financial.simpleinstruments.derivative.SimpleFuture; /** * Convert from a specialized future to a simple one. */ public final class SimpleFutureConverter extends InstrumentDerivativeVisitorAdapter<Object, SimpleFuture> { /** The converter */ private static SimpleFutureConverter s_instance = new SimpleFutureConverter(); /** * Class to convert between Commodity future objects and SimpleFuture objects */ private SimpleFutureConverter() { } /** * @return A static instance of this converter */ public static SimpleFutureConverter getInstance() { return s_instance; } @Override public SimpleFuture visitAgricultureFuture(final AgricultureFuture future) { return new SimpleFuture(future.getExpiry(), future.getSettlement(), future.getReferencePrice(), future.getUnitAmount(), future.getCurrency()); } @Override public SimpleFuture visitEnergyFuture(final EnergyFuture future) { return new SimpleFuture(future.getExpiry(), future.getSettlement(), future.getReferencePrice(), future.getUnitAmount(), future.getCurrency()); } @Override public SimpleFuture visitMetalFuture(final MetalFuture future) { return new SimpleFuture(future.getExpiry(), future.getSettlement(), future.getReferencePrice(), future.getUnitAmount(), future.getCurrency()); } }