/** * Copyright (C) 2013 - 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.ChangeManager; import com.opengamma.core.change.DummyChangeManager; import com.opengamma.id.UniqueId; import com.opengamma.id.UniqueIdentifiable; import com.opengamma.id.VersionCorrection; import com.opengamma.util.ArgumentChecker; /** * Partial implementation of {@link Resolver} for trivial conversions of unique identifier encoded values to primitive objects. * * @param <T> the target type resolved by this class */ public abstract class AbstractPrimitiveResolver<T extends UniqueIdentifiable> implements ObjectResolver<T> { private final String _identifierScheme; public AbstractPrimitiveResolver(final String identifierScheme) { ArgumentChecker.notNull(identifierScheme, "identifierScheme"); _identifierScheme = identifierScheme; } protected String getIdentifierScheme() { return _identifierScheme; } protected T resolveObject(final String value) { throw new UnsupportedOperationException("Not implemented"); } protected T resolveObject(final UniqueId identifier) { return resolveObject(identifier.getValue()); } // Resolver @Override public T resolveObject(final UniqueId uniqueId, final VersionCorrection versionCorrection) { if (getIdentifierScheme().equals(uniqueId.getScheme())) { return resolveObject(uniqueId); } else { return null; } } @Override public DeepResolver deepResolver() { return null; } // ChangeProvider @Override public ChangeManager changeManager() { return DummyChangeManager.INSTANCE; } }