/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.livedata.server;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import com.opengamma.id.ExternalId;
import com.opengamma.id.ExternalScheme;
import com.opengamma.livedata.LiveDataSpecification;
import com.opengamma.livedata.resolver.DistributionSpecificationResolver;
import com.opengamma.livedata.resolver.NaiveDistributionSpecificationResolver;
/**
* Will return null for IDs not in the domain, value otherwise
*/
public class MockDistributionSpecificationResolver implements DistributionSpecificationResolver {
private final ExternalScheme _domain;
private final DistributionSpecificationResolver _distributionSpecificationResolver;
public MockDistributionSpecificationResolver(ExternalScheme domain) {
this(domain, new NaiveDistributionSpecificationResolver());
}
public MockDistributionSpecificationResolver(ExternalScheme domain,
DistributionSpecificationResolver distributionSpecificationResolver) {
_domain = domain;
_distributionSpecificationResolver = distributionSpecificationResolver;
}
@Override
public DistributionSpecification resolve(LiveDataSpecification liveDataSpecificationFromClient) {
String id = liveDataSpecificationFromClient.getIdentifier(_domain);
if (id == null) {
return null;
} else {
LiveDataSpecification inner = new LiveDataSpecification(
liveDataSpecificationFromClient.getNormalizationRuleSetId(), Collections.singleton(ExternalId.of(_domain,
id)));
return _distributionSpecificationResolver.resolve(inner);
}
}
@Override
public Map<LiveDataSpecification, DistributionSpecification> resolve(
Collection<LiveDataSpecification> liveDataSpecifications) {
HashMap<LiveDataSpecification, DistributionSpecification> ret = new HashMap<LiveDataSpecification, DistributionSpecification>();
for (LiveDataSpecification liveDataSpecification : liveDataSpecifications) {
ret.put(liveDataSpecification, resolve(liveDataSpecification));
}
return ret;
}
}