/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.instrument.index; import java.util.HashMap; import java.util.Map; import com.opengamma.OpenGammaRuntimeException; import com.opengamma.util.money.Currency; /** * */ public final class IndexPriceMaster { /** * The method unique instance. */ private static final IndexPriceMaster INSTANCE = new IndexPriceMaster(); /** * Return the unique instance of the class. * @return The instance. */ public static IndexPriceMaster getInstance() { return INSTANCE; } /** * The map with the list of Ibor Indexes and their conventions. */ private final Map<String, IndexPrice> _priceIndex; /** * Private constructor. */ private IndexPriceMaster() { _priceIndex = new HashMap<>(); _priceIndex.put( "EURHICP", new IndexPrice("EUR HICP", Currency.EUR)); _priceIndex.put( "UKRPI", new IndexPrice("UK RPI", Currency.GBP)); _priceIndex.put( "FRCPI", new IndexPrice("FR CPI", Currency.EUR)); _priceIndex.put( "USCPI", new IndexPrice("US CPI", Currency.USD)); } public IndexPrice getIndex(final String name) { final IndexPrice indexNoCalendar = _priceIndex.get(name); if (indexNoCalendar == null) { throw new OpenGammaRuntimeException("Could not get Ibor index for " + name); } return new IndexPrice(indexNoCalendar.getName(), indexNoCalendar.getCurrency()); } }