/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.target.resolver; import com.opengamma.core.change.ChangeProvider; import com.opengamma.id.UniqueId; import com.opengamma.id.UniqueIdentifiable; import com.opengamma.id.VersionCorrection; /** * Common interface for a resolver component to produce an object from a unique identifier. * * @param <T> the common type of the item produced by the resolution */ public interface ObjectResolver<T extends UniqueIdentifiable> extends ChangeProvider { /** * Resolves the unique identifier into the origin object. * * @param uniqueId the unique identifier to resolve, not null * @param versionCorrection the version/correction timestamp for any deep resolution of the object, not null * @return the resolved object, or null if the identifier could not be resolved */ T resolveObject(UniqueId uniqueId, VersionCorrection versionCorrection); /** * Reports whether this resolver will perform deep resolution based on the version/correction timestamp. * * @return the deep-resolution component if deep-resolution will be performed, null if the version/correction timestamp will be ignored */ DeepResolver deepResolver(); }