Package com.opengamma.master.position

Examples of com.opengamma.master.position.ManageablePosition


    @Override
    public ObjectsPair<ManageablePosition, ManageableSecurity[]> readNext() {
      if (!_iterator.hasNext()) {
        return null;
      }
      ManageablePosition position = _iterator.next();
     
      // Write the related security(ies)
      ManageableSecurityLink sLink = position.getSecurityLink();
      Security security = sLink.resolveQuiet(getToolContext().getSecuritySource());
      if ((security != null) && (security instanceof ManageableSecurity)) {

        // Find underlying security
        // TODO support multiple underlyings; unfortunately the system does not provide a standard way
        // to retrieve underlyings
        if (((ManageableSecurity) security).propertyNames().contains("underlyingId")) {
          ExternalId id = (ExternalId) ((ManageableSecurity) security).property("underlyingId").get();

          Security underlying;
          try {
            underlying = getToolContext().getSecuritySource().getSingle(id.toBundle());
            if (underlying != null) {
              return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(
                  position,
                  new ManageableSecurity[] {(ManageableSecurity) security, (ManageableSecurity) underlying });
            } else {
              s_logger.warn("Could not resolve underlying " + id + " for security " + security.getName());
            }
          } catch (Throwable e) {
            // Underlying not found
            s_logger.warn("Error trying to resolve underlying " + id + " for security " + security.getName());
          }
        }
        return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(
            position,
            new ManageableSecurity[] {(ManageableSecurity) security });

      } else {
        s_logger.warn("Could not resolve security relating to position " + position.getName());
        return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(null, null);
      }
    }
View Full Code Here


    _currentRow.putAll(_rowParser.constructRow(securities));

    if (_includeTrades) {
      // Write each trade as a separate row if the current position contains trades
      if (position.getTrades().size() > 0) {
        ManageablePosition subPosition = JodaBeanUtils.clone(position);
        for (ManageableTrade trade : position.getTrades()) {
          Map<String, String> tempRow = new HashMap<>();
          tempRow.putAll(_currentRow);
          tempRow.putAll(_rowParser.constructRow(trade));

          // Set position quantity to its trade's quantity and write position
          subPosition.setQuantity(trade.getQuantity());
          tempRow.putAll(_rowParser.constructRow(subPosition));

          // Flush out the current row with trade
          if (!tempRow.isEmpty()) {
            getSheet().writeNextRow(tempRow);
View Full Code Here

   * @return Values returned from the function, not including any nulls
   */
  public <T> List<T> map(ManageablePortfolioNode node, Function<T> function) {
    List<T> results = Lists.newArrayList();
    for (ObjectId positionId : node.getPositionIds()) {
      ManageablePosition position = _positionMaster.get(positionId, _versionCorrection).getPosition();
      if (position == null) {
        throw new DataNotFoundException("No position found with ID " + positionId + " and " +
                                            "version-correction " + _versionCorrection);
      }
      ManageableSecurity security = (ManageableSecurity) position.getSecurityLink().resolve(_securitySource);
      ExternalId underlyingId = FinancialSecurityUtils.getUnderlyingId(security);
      ManageableSecurity underlying;
      if (underlyingId != null) {
        SecuritySearchResult searchResult = _securityMaster.search(new SecuritySearchRequest(underlyingId));
        underlying = searchResult.getFirstSecurity();
View Full Code Here

//      }

      if (_includeTrades) {
        // Write each trade as a separate row if the current position contains trades
        if (position.getTrades().size() > 0) {
          ManageablePosition subPosition = JodaBeanUtils.clone(position);
          for (ManageableTrade trade : position.getTrades()) {
            Map<String, String> tempRow = new HashMap<>();
            tempRow.putAll(_currentRow);
            tempRow.putAll(_currentParser.constructRow(trade));

            // Set position quantity to its trade's quantity and write position
            subPosition.setQuantity(trade.getQuantity());
            tempRow.putAll(_currentParser.constructRow(subPosition));

            // Flush out the current row with trade
            if (!tempRow.isEmpty()) {
              getSheet().writeNextRow(tempRow);
View Full Code Here

    // Build the underlying security
    ManageableSecurity[] securities = _rowParser.constructSecurity(row);
    if (securities != null && securities.length > 0 && securities[0] != null) {
     
      // Build the position and trade(s) using security[0] (underlying)
      ManageablePosition position = _rowParser.constructPosition(row, securities[0]);     
      if (position != null) {
        ManageableTrade trade = _rowParser.constructTrade(row, securities[0], position);
        if (trade != null) {
          position.addTrade(trade);
        }
      }
      return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(position, securities);
     
    } else {
View Full Code Here

   
    ObjectId positionId = getNextPositionId();   
    if (positionId == null) {
      return null;
    } else {
      ManageablePosition position;
      try {
      position = _positionMaster.get(positionId, VersionCorrection.LATEST).getPosition();
      } catch (Throwable t) {
        return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(null, null);
      }

      // Write the related security(ies)
      ManageableSecurityLink sLink = position.getSecurityLink();
      Security security = sLink.resolveQuiet(_securitySource);
      if ((security != null) && (security instanceof ManageableSecurity)) {
       
        // Find underlying security
        // TODO support multiple underlyings; unfortunately the system does not provide a standard way
        // to retrieve underlyings
        if (((ManageableSecurity) security).propertyNames().contains("underlyingId")) {
          ExternalId id = (ExternalId) ((ManageableSecurity) security).property("underlyingId").get();
       
          Security underlying;
          try {
            underlying = _securitySource.getSingle(id.toBundle());
            if (underlying != null) {
              return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(
                  position,
                  new ManageableSecurity[] {(ManageableSecurity) security, (ManageableSecurity) underlying});
            } else {
              s_logger.warn("Could not resolve underlying " + id + " for security " + security.getName());
            }
          } catch (Throwable e) {
            // Underlying not found
            s_logger.warn("Error trying to resolve underlying " + id + " for security " + security.getName());
          }
        }
        return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(
              position,
              new ManageableSecurity[] {(ManageableSecurity) security});

      } else {
        s_logger.warn("Could not resolve security relating to position " + position.getName());
        return new ObjectsPair<ManageablePosition, ManageableSecurity[]>(null, null);
      }
    }
  }
View Full Code Here

    for (final SwapSecurity swap : swaps) {
      final SecurityDocument swapToAddDoc = new SecurityDocument();
      swapToAddDoc.setSecurity(swap);
      securityMaster.add(swapToAddDoc);
      final ManageablePosition swapPosition = new ManageablePosition(BigDecimal.ONE, swap.getExternalIdBundle());
      final PositionDocument addedDoc = positionMaster.add(new PositionDocument(swapPosition));
      rootNode.addPosition(addedDoc.getUniqueId());
    }
    portfolioMaster.add(portfolioDoc);
  }
View Full Code Here

        // stop loading on EOF
        break;
      }

      // Is position and security data is available for the current row?
      ManageablePosition position = next.getFirst();
      ManageableSecurity[] securities = next.getSecond();

      // Is position and security data available for the current row?
      if (position != null && securities != null) {

        // Set current path
        String[] path;
        if (_structure == null) {
          path = portfolioReader.getCurrentPath();
        } else {
          path = new String[_structure.length];
          for (int i = 0; i < _structure.length; i++) {
            path[i] = position.getAttributes().get(_structure[i]);
          }
        }
        portfolioWriter.setPath(path);

        // Write position and security data
View Full Code Here

      _readTime += time.periodUntil(Instant.now(), ChronoUnit.MILLIS);
      time = Instant.now();

      // Is position and security data is available for the current row?
          ManageablePosition position = next.getFirst();
      ManageableSecurity[] securities = next.getSecond();

      // Is position and security data available for the current row?
      if (position != null && securities != null) {

        // Set current path
        String[] path;
        if (_structure == null) {
          path = portfolioReader.getCurrentPath();
        } else {
          path = new String[_structure.length];
          for (int i = 0; i < _structure.length; i++) {
            path[i] = position.getAttributes().get(_structure[i]);
          }
        }
        portfolioWriter.setPath(path);

        // Write position and security data
View Full Code Here

  public ManageablePosition constructPosition(Map<String, String> row, ManageableSecurity security) {
   
    ArgumentChecker.notNull(row, "row");
    ArgumentChecker.notNull(security, "security");
   
    return new ManageablePosition(BigDecimal.ONE, security.getExternalIdBundle());
  }
View Full Code Here

TOP

Related Classes of com.opengamma.master.position.ManageablePosition

Copyright © 2018 www.massapicom. 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.