Package com.opengamma.financial.generator

Source Code of com.opengamma.financial.generator.PortfolioGenerator

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

import com.opengamma.core.position.Portfolio;
import com.opengamma.core.position.PortfolioNode;
import com.opengamma.core.position.impl.SimplePortfolio;
import com.opengamma.core.position.impl.SimplePortfolioNode;
import com.opengamma.util.ArgumentChecker;

/**
* Utility class for constructing a random, but reasonable, portfolio.
*/
public class PortfolioGenerator {

  private final PortfolioNodeGenerator _rootNodeGenerator;
  private final NameGenerator _nameGenerator;

  public PortfolioGenerator(final PortfolioNodeGenerator rootNodeGenerator, final NameGenerator nameGenerator) {
    ArgumentChecker.notNull(rootNodeGenerator, "rootNodeGenerator");
    ArgumentChecker.notNull(nameGenerator, "nameGenerator");
    _rootNodeGenerator = rootNodeGenerator;
    _nameGenerator = nameGenerator;
  }

  protected PortfolioNodeGenerator getRootNodeGenerator() {
    return _rootNodeGenerator;
  }

  protected NameGenerator getNameGenerator() {
    return _nameGenerator;
  }

  public Portfolio createPortfolio() {
    final PortfolioNode root = getRootNodeGenerator().createPortfolioNode();
    final SimplePortfolioNode rootNode;
    if (root instanceof SimplePortfolioNode) {
      rootNode = (SimplePortfolioNode) root;
    } else {
      rootNode = new SimplePortfolioNode(root);
    }
    return new SimplePortfolio(getNameGenerator().createName(), rootNode);
  }

}
TOP

Related Classes of com.opengamma.financial.generator.PortfolioGenerator

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.