/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.link; import com.opengamma.core.marketdatasnapshot.MarketDataSnapshotSource; import com.opengamma.core.marketdatasnapshot.NamedSnapshot; import com.opengamma.id.VersionCorrection; import com.opengamma.service.ServiceContext; import com.opengamma.service.VersionCorrectionProvider; /** * Link resolver to resolve snapshot links using a ServiceContext. * * @param <T> the type of config object to be resolved */ final class ServiceContextSnapshotLinkResolver<T extends NamedSnapshot> extends SourceLinkResolver<String, T, MarketDataSnapshotSource> { /** * Creates the resolver using the default service context. */ ServiceContextSnapshotLinkResolver() { super(); } /** * Creates the resolver using the supplied service context. * * @param serviceContext the service context to use when resolving the link */ ServiceContextSnapshotLinkResolver(ServiceContext serviceContext) { super(serviceContext); } @Override protected Class<MarketDataSnapshotSource> getSourceClass() { return MarketDataSnapshotSource.class; } @Override protected VersionCorrection getVersionCorrection(VersionCorrectionProvider vcProvider) { return vcProvider.getConfigVersionCorrection(); } @Override protected T executeQuery(MarketDataSnapshotSource snapshotSource, Class<T> type, String name, VersionCorrection versionCorrection) { return snapshotSource.getSingle(type, name, versionCorrection); } }