Java tutorial
/** * 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; } }