com.opengamma.integration.tool.portfolio.PortfolioInfoTool.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.integration.tool.portfolio.PortfolioInfoTool.java

Source

/**
 * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.integration.tool.portfolio;

import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.opengamma.OpenGammaRuntimeException;
import com.opengamma.component.tool.AbstractTool;
import com.opengamma.core.position.PortfolioNode;
import com.opengamma.core.position.Position;
import com.opengamma.core.position.impl.PortfolioNodeTraversalCallback;
import com.opengamma.core.position.impl.PortfolioNodeTraverser;
import com.opengamma.integration.copier.portfolio.reader.MasterPortfolioReader;
import com.opengamma.integration.copier.portfolio.reader.PortfolioReader;
import com.opengamma.integration.tool.IntegrationToolContext;
import com.opengamma.master.portfolio.ManageablePortfolio;
import com.opengamma.master.portfolio.PortfolioDocument;
import com.opengamma.master.portfolio.PortfolioSearchRequest;
import com.opengamma.master.portfolio.PortfolioSearchResult;
import com.opengamma.scripts.Scriptable;

/**
 * Tool to aggregate portfolios
 */
@Scriptable
public class PortfolioInfoTool extends AbstractTool<IntegrationToolContext> {

    private static final Logger s_logger = LoggerFactory.getLogger(PortfolioInfoTool.class);

    private static final String PORTFOLIO_NAME = "n";

    /**
     * Runs the tool.
     *
     * @param args  empty arguments
     */
    public static void main(String[] args) { // CSIGNORE
        new PortfolioInfoTool().initAndRun(args, IntegrationToolContext.class);
    }

    @Override
    protected void doRun() {
        PortfolioReader portfolioReader = new MasterPortfolioReader(getCommandLine().getOptionValue(PORTFOLIO_NAME),
                getToolContext().getPortfolioMaster(), getToolContext().getPositionMaster(),
                getToolContext().getSecuritySource());

        int positionCount = 0;
        while (portfolioReader.readNext() != null) {
            positionCount++;
        }
        System.out.println(
                "Number of positions in " + getCommandLine().getOptionValue(PORTFOLIO_NAME) + ": " + positionCount);
    }

    protected Options createOptions(boolean contextProvided) {
        Options options = super.createOptions(contextProvided);

        Option origNameOption = new Option(PORTFOLIO_NAME, "origname", true,
                "The name of the OpenGamma portfolio to copy or rename");
        origNameOption.setRequired(true);
        options.addOption(origNameOption);

        return options;
    }
}