/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.marketdata;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import com.google.common.collect.Maps;
import com.opengamma.engine.value.ValueSpecification;
/**
* Base implementation of {@link MarketDataSnapshot}.
*/
public abstract class AbstractMarketDataSnapshot implements MarketDataSnapshot {
/**
* No-op implementation.
*/
@Override
public void init() {
// No-op
}
/**
* No-op implementation.
*
* {@inheritDoc}
*/
@Override
public void init(final Set<ValueSpecification> values, final long timeout, final TimeUnit unit) {
// No-op
}
/**
* Implementation based on the {@link #query(ValueSpecification)} method. {@inheritDoc}
*/
@Override
public Map<ValueSpecification, Object> query(final Set<ValueSpecification> specifications) {
final Map<ValueSpecification, Object> results = Maps.newHashMapWithExpectedSize(specifications.size());
for (final ValueSpecification specification : specifications) {
final Object value = query(specification);
if (value != null) {
results.put(specification, value);
}
}
return results;
}
protected void assertInitialized() {
if (!isInitialized()) {
throw new IllegalStateException("Market data snapshot is not initialized");
}
}
}