/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.core.id;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.opengamma.core.config.ConfigSource;
import com.opengamma.util.ArgumentChecker;
/**
* Utility class to enable easy fetching of display comparator for externalId bundles.
*/
public class ExternalIdWithDatesDisplayComparatorUtils {
private static final Logger s_logger = LoggerFactory.getLogger(ExternalIdWithDatesDisplayComparatorUtils.class);
/**
* Default name for config object defining behavior of ExternalIdDisplayComparator
*/
public static final String DEFAULT_CONFIG_NAME = "DEFAULT";
public static ExternalIdWithDatesDisplayComparator getComparator(ConfigSource configSource, String name) {
ArgumentChecker.notNull(name, "name");
ExternalIdOrderConfig config = null;
if (configSource == null) {
s_logger.error("null config source, defaulting to default configuration");
return new ExternalIdWithDatesDisplayComparator(ExternalIdOrderConfig.DEFAULT_CONFIG);
} else {
config = configSource.getLatestByName(ExternalIdOrderConfig.class, name);
if (config == null) {
s_logger.error("No ExternalIdOrderConfig object called " + name + " in config database, defaulting");
return new ExternalIdWithDatesDisplayComparator(ExternalIdOrderConfig.DEFAULT_CONFIG);
} else {
return new ExternalIdWithDatesDisplayComparator(config);
}
}
}
}