Package com.opengamma.web.analytics

Source Code of com.opengamma.web.analytics.PortfolioSupplier

/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.web.analytics;

import java.util.concurrent.ExecutorService;

import com.google.common.base.Supplier;
import com.opengamma.core.position.Portfolio;
import com.opengamma.core.position.PositionSource;
import com.opengamma.core.security.SecuritySource;
import com.opengamma.engine.view.compilation.PortfolioCompiler;
import com.opengamma.id.ObjectId;
import com.opengamma.id.VersionCorrection;
import com.opengamma.util.ArgumentChecker;

/**
* Supplies a fully resolved portfolio.
*/
/* package */ class PortfolioSupplier implements Supplier<Portfolio> {

  private final ObjectId _portfolioId;
  private final VersionCorrection _versionCorrection;
  private final PositionSource _positionSource;
  private final SecuritySource _securitySource;
  private final ExecutorService _executor;

  /* package */ PortfolioSupplier(ObjectId portfolioId,
                                  VersionCorrection versionCorrection,
                                  PositionSource positionSource,
                                  SecuritySource securitySource,
                                  ExecutorService executor) {
    _securitySource = securitySource;
    _executor = executor;
    ArgumentChecker.notNull(positionSource, "positionSource");
    _positionSource = positionSource;
    _portfolioId = portfolioId;
    _versionCorrection = versionCorrection;
  }

  @Override
  public Portfolio get() {
    if (_portfolioId != null) {
      Portfolio unresolvedPortfolio = _positionSource.getPortfolio(_portfolioId, _versionCorrection);
      return PortfolioCompiler.resolvePortfolio(unresolvedPortfolio, _executor, _securitySource);
    } else {
      return null;
    }
  }
}
TOP

Related Classes of com.opengamma.web.analytics.PortfolioSupplier

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.