Package com.opengamma.engine.depgraph

Examples of com.opengamma.engine.depgraph.DependencyGraphBuilder


   * Builds the dependency graph trace with the configured params.
   * @param properties the properties to use
   * @return the built trace object
   */
  public DependencyGraphBuildTrace build(DependencyGraphTraceBuilderProperties properties) {
    final DependencyGraphBuilder builder = _builderContext.getDependencyGraphBuilderFactory().newInstance();
    builder.setCalculationConfigurationName(properties.getCalculationConfigurationName());
    final FunctionCompilationContext context = _builderContext.getFunctionCompilationContext().clone();
    final ViewDefinition definition = new ViewDefinition("Mock View", "Test");
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(definition, properties.getCalculationConfigurationName());
    calcConfig.setDefaultProperties(properties.getDefaultProperties());
    context.setViewCalculationConfiguration(calcConfig);
    context.setComputationTargetResolver(context.getRawComputationTargetResolver().atVersionCorrection(properties.getResolutionTime()));
    builder.setCompilationContext(context);
    final Collection<ResolutionRule> rules = _builderContext.getFunctionResolver().compile((properties.getValuationTime() != null) ? properties.getValuationTime() : Instant.now())
        .getAllResolutionRules();
    // TODO: allow transformation rules
    final DefaultCompiledFunctionResolver functions = new DefaultCompiledFunctionResolver(context, rules);
    functions.compileRules();
    builder.setFunctionResolver(functions);
    builder.setFunctionExclusionGroups(_builderContext.getFunctionExclusionGroups());
    // TODO this isn't used. is this OK?
    final UserPrincipal marketDataUser = UserPrincipal.getLocalUser();
    final MarketDataProviderResolver resolver = _builderContext.getMarketDataProviderResolver();
    List<MarketDataSpecification> marketData = properties.getMarketData();
    if (marketData == null || marketData.isEmpty()) {
      marketData = Collections.<MarketDataSpecification>singletonList(MarketData.live());
    }
   
    MarketDataAvailabilityProvider availabilityProvider = new SnapshottingViewExecutionDataProvider(marketDataUser, marketData, resolver).getAvailabilityProvider();
    builder.setMarketDataAvailabilityProvider(availabilityProvider);
    final ResolutionFailureAccumulator resolutionFailureAccumulator = new ResolutionFailureAccumulator();
    builder.setResolutionFailureListener(resolutionFailureAccumulator);
    builder.setDisableFailureReporting(false);
    for (final ValueRequirement requirement : properties.getRequirements()) {
      builder.addTarget(requirement);
    }
    DependencyGraph dependencyGraph = builder.getDependencyGraph();
    List<ResolutionFailure> resolutionFailures = resolutionFailureAccumulator.getResolutionFailures();

    DependencyGraphBuildTrace graphBuildTrace = DependencyGraphBuildTrace.of(
        dependencyGraph,
        builder.getExceptions(),
        resolutionFailures,
        builder.getValueRequirementMapping());

    return graphBuildTrace;

  }
View Full Code Here


public class ResultOutputModeTest {

  public void testOutputModes() {
    DepGraphTestHelper helper = new DepGraphTestHelper();
    helper.addFunctionProducing1and2();
    DependencyGraphBuilder builder = helper.createBuilder(null);
    builder.addTarget(Collections.singleton(helper.getRequirement1()));
    DependencyGraph graph = builder.getDependencyGraph();
    graph.removeUnnecessaryValues();
   
    assertEquals(1, graph.getDependencyNodes().size());
    DependencyNode functionNode = graph.getDependencyNodes().iterator().next();
   
View Full Code Here

    assertEquals(res1.getProperty("FundingCurve"), "DefaultFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
  }

  public void testTradeOverride() {
    final DependencyGraphBuilder builder = createBuilder();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(getTrade(positions, "Trade")),
        ValueProperties.with("ForwardCurve", "BarForward").with("FundingCurve", "BarFunding").get());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getTrade(positions, "TradeAttr")),
        ValueProperties.with("ForwardCurve", "BarForward").with("FundingCurve", "BarFunding").get());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPortfolioNodeGeneric() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    config.setDefaultProperties(ValueProperties.with("PORTFOLIO_NODE.Present Value.DEFAULT_ForwardCurve", "BarForward").with("PORTFOLIO_NODE.*.DEFAULT_FundingCurve", "BarFunding").get());
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(getPortfolioNode(positions, "Position")), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPortfolioNode(positions, "PositionAttr")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPortfolioNodeSpecific() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final PortfolioNode node1 = getPortfolioNode(positions, "PositionAttr");
    config.setDefaultProperties(ValueProperties.with("PORTFOLIO_NODE.Present Value.DEFAULT_ForwardCurve." + node1.getUniqueId(), "BarForward")
        .with("PORTFOLIO_NODE.*.DEFAULT_FundingCurve." + node1.getUniqueId(), "BarFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(node1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPortfolioNode(positions, "Position")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "DefaultForward");
    assertEquals(res2.getProperty("FundingCurve"), "DefaultFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "DefaultFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPortfolioNodeSpecificOverride() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final PortfolioNode node1 = getPortfolioNode(positions, "PositionAttr");
    config.setDefaultProperties(ValueProperties.with("PORTFOLIO_NODE.Present Value.DEFAULT_ForwardCurve." + node1.getUniqueId(), "BarForward")
        .with("PORTFOLIO_NODE.Present Value.DEFAULT_FundingCurve." + node1.getUniqueId(), "BarFunding").with("PORTFOLIO_NODE.*.DEFAULT_ForwardCurve", "GenericForward")
        .with("PORTFOLIO_NODE.*.DEFAULT_FundingCurve", "GenericFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(node1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPortfolioNode(positions, "Position")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "GenericForward");
    assertEquals(res2.getProperty("FundingCurve"), "GenericFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "GenericFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPositionGeneric() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    config.setDefaultProperties(ValueProperties.with("POSITION.*.DEFAULT_ForwardCurve", "BarForward").with("POSITION.Present Value.DEFAULT_FundingCurve", "BarFunding").get());
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(getPosition(positions, "Position")), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPosition(positions, "PositionAttr")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPositionSpecific() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final Position position1 = getPosition(positions, "PositionAttr");
    config.setDefaultProperties(ValueProperties.with("POSITION.Present Value.DEFAULT_ForwardCurve." + position1.getUniqueId(), "BarForward")
        .with("POSITION.*.DEFAULT_FundingCurve." + position1.getUniqueId(), "BarFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(position1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPosition(positions, "Position")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "DefaultForward");
    assertEquals(res2.getProperty("FundingCurve"), "DefaultFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "DefaultFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPositionSpecificOverride() {
    final DependencyGraphBuilder builder = createBuilder();
    final ViewCalculationConfiguration config = builder.getCompilationContext().getViewCalculationConfiguration();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final Position position1 = getPosition(positions, "PositionAttr");
    config.setDefaultProperties(ValueProperties.with("POSITION.Present Value.DEFAULT_ForwardCurve." + position1.getUniqueId(), "BarForward")
        .with("POSITION.*.DEFAULT_FundingCurve." + position1.getUniqueId(), "BarFunding").with("POSITION.*.DEFAULT_ForwardCurve", "GenericForward")
        .with("POSITION.Present Value.DEFAULT_FundingCurve", "GenericFunding").get());
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(position1), ValueProperties.none());
    final ValueRequirement req2 = createValueRequirement(ComputationTargetSpecification.of(getPosition(positions, "Position")), ValueProperties.none());
    builder.addTarget(req1);
    builder.addTarget(req2);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    final ValueSpecification res2 = builder.getValueRequirementMapping().get(req2);
    assertEquals(res1.getProperty("ForwardCurve"), "BarForward");
    assertEquals(res1.getProperty("FundingCurve"), "BarFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
    assertEquals(res2.getProperty("ForwardCurve"), "GenericForward");
    assertEquals(res2.getProperty("FundingCurve"), "GenericFunding");
View Full Code Here

    assertEquals(res2.getProperty("FundingCurve"), "GenericFunding");
    assertEquals(res2.getProperty("Currency"), "USD");
  }

  public void testPositionAttribute() {
    final DependencyGraphBuilder builder = createBuilder();
    final PositionSource positions = builder.getCompilationContext().getPortfolioStructure().getPositionSource();
    final ValueRequirement req1 = createValueRequirement(ComputationTargetSpecification.of(getPosition(positions, "PositionAttr")), ValueProperties.none());
    builder.addTarget(req1);
    builder.getDependencyGraph();
    final ValueSpecification res1 = builder.getValueRequirementMapping().get(req1);
    assertEquals(res1.getProperty("ForwardCurve"), "FooForward");
    assertEquals(res1.getProperty("FundingCurve"), "FooFunding");
    assertEquals(res1.getProperty("Currency"), "USD");
  }
View Full Code Here

TOP

Related Classes of com.opengamma.engine.depgraph.DependencyGraphBuilder

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.