/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.security.impl; import java.util.Collection; import com.opengamma.core.security.Security; import com.opengamma.core.security.SecuritySource; import com.opengamma.id.VersionCorrection; /** * Simple implementation of {@code SecurityResolver} that picks the first option. * <p> * Resolution of a single security from multiple candidate securities is performed by selecting the first. Since the input is not necessarily sorted, this may be random. */ public class SimpleSecurityResolver extends AbstractSecurityResolver { /** * Creates an instance decorating a {@code SecuritySource}. * <p> * It is recommended to use a locked version-correction rather than one with "latest" wherever possible. * * @param securitySource the source of securities, not null * @param versionCorrection the version-correction at which the resolver will operate, not null * @throws IllegalArgumentException if either version-correction instant is "latest" */ public SimpleSecurityResolver(SecuritySource securitySource, VersionCorrection versionCorrection) { super(securitySource, versionCorrection); } //------------------------------------------------------------------------- @Override protected Security selectBestMatch(Collection<? extends Security> candidates) { return candidates.iterator().next(); } }