/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.sesame.cache.source;
import com.opengamma.core.convention.Convention;
import com.opengamma.core.convention.ConventionSource;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalIdBundle;
import com.opengamma.id.ObjectId;
import com.opengamma.id.UniqueId;
import com.opengamma.id.VersionCorrection;
import com.opengamma.sesame.cache.CacheInvalidator;
import com.opengamma.util.ArgumentChecker;
/**
*
*/
public class CacheAwareConventionSource extends CacheAwareSourceWithExternalBundle<Convention>
implements ConventionSource {
private final ConventionSource _delegate;
public CacheAwareConventionSource(ConventionSource delegate, CacheInvalidator cacheInvalidator) {
super(delegate, cacheInvalidator);
_delegate = ArgumentChecker.notNull(delegate, "delegate");
}
@Override
public <T extends Convention> T get(UniqueId uniqueId, Class<T> type) {
return register(_delegate.get(uniqueId, type));
}
@Override
public <T extends Convention> T get(ObjectId objectId, VersionCorrection versionCorrection, Class<T> type) {
return register(_delegate.get(objectId, versionCorrection, type));
}
@Override
public <T extends Convention> T getSingle(ExternalIdBundle bundle, VersionCorrection versionCorrection, Class<T> type) {
return register(_delegate.getSingle(bundle, versionCorrection, type));
}
@Override
public Convention getSingle(ExternalId externalId) {
return register(_delegate.getSingle(externalId));
}
@Override
public <T extends Convention> T getSingle(ExternalId externalId, Class<T> type) {
return register(_delegate.getSingle(externalId, type));
}
@Override
public <T extends Convention> T getSingle(ExternalIdBundle bundle, Class<T> type) {
return register(_delegate.getSingle(bundle, type));
}
}