/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.value; import java.lang.reflect.Field; import java.util.HashSet; import java.util.Set; import com.opengamma.OpenGammaRuntimeException; /** * Utility methods to simplify managing market data requirement names. * <p> * This is a static thread-safe utility class. */ /** * Constructs a list of all valid {@link MarketDataRequirementNames}. */ public class MarketDataRequirementNamesHelper { /** * Constructs a list of all valid {@link MarketDataRequirementNames}. * * @return a list of all valid {@link MarketDataRequirementNames}. */ public static Set<String> constructValidRequirementNames() { Set<String> result = new HashSet<String>(); // All fields are implicitly public static final assert MarketDataRequirementNames.class.isInterface(); try { for (Field field : MarketDataRequirementNames.class.getFields()) { if (String.class.equals(field.getType())) { result.add((String) field.get(null)); } } } catch (Exception e) { throw new OpenGammaRuntimeException("Error querying fields of " + MarketDataRequirementNames.class); } return result; } }