Package com.opengamma.engine.view

Examples of com.opengamma.engine.view.ViewDefinition


    // function that can produce them
    assertTargets(compiledViewDefinition, sec2.getUniqueId(), pn.getUniqueId());
  }

  public void testPrimitivesOnlyNoPortfolioReference() {
    final ViewDefinition viewDefinition = new ViewDefinition("Test", "jonathan");
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(viewDefinition, "Config1");
    viewDefinition.addViewCalculationConfiguration(calcConfig);
    final UniqueId t1 = UniqueId.of("TestScheme", "t1");
    final InMemoryFunctionRepository functionRepo = new InMemoryFunctionRepository();
    final MockFunction f1 = MockFunction.getMockFunction(new ComputationTarget(ComputationTargetType.PRIMITIVE, t1), 42);
    functionRepo.addFunction(f1);
    final FunctionCompilationContext compilationContext = new FunctionCompilationContext();
View Full Code Here


    assertNotNull(compiledViewDefinition.getDependencyGraphExplorer("Config1"));
    assertTargets(compiledViewDefinition, t1);
  }

  public void testPrimitivesAndSecuritiesNoPortfolioReference() {
    final ViewDefinition viewDefinition = new ViewDefinition("Test", "jonathan");
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(viewDefinition, "Config1");
    viewDefinition.addViewCalculationConfiguration(calcConfig);
    final ExternalId secIdentifier1 = ExternalId.of("SEC", "1");
    final SimpleSecurity sec1 = new SimpleSecurity("My Sec");
    sec1.addExternalId(secIdentifier1);
    final InMemorySecuritySource securitySource = new InMemorySecuritySource();
    securitySource.addSecurity(sec1);
    final UniqueId t1 = UniqueId.of("TestScheme", "t1");
    final InMemoryFunctionRepository functionRepo = new InMemoryFunctionRepository();
    final MockFunction f1 = MockFunction.getMockFunction("f1", new ComputationTarget(ComputationTargetType.PRIMITIVE, t1), 42);
    final MockFunction f2 = MockFunction.getMockFunction("f2", new ComputationTarget(ComputationTargetType.SECURITY, sec1), 60, f1);
    functionRepo.addFunction(f1);
    functionRepo.addFunction(f2);
    final FunctionCompilationContext compilationContext = new FunctionCompilationContext();
    compilationContext.setFunctionInitId(123);
    final CompiledFunctionService cfs = new CompiledFunctionService(functionRepo, new CachingFunctionRepositoryCompiler(), compilationContext);
    cfs.initialize();
    final DefaultFunctionResolver functionResolver = new DefaultFunctionResolver(cfs);
    final DefaultCachingComputationTargetResolver computationTargetResolver = new DefaultCachingComputationTargetResolver(new DefaultComputationTargetResolver(securitySource), _cacheManager);
    compilationContext.setRawComputationTargetResolver(computationTargetResolver);
    final ViewCompilationServices compilationServices = new ViewCompilationServices(new FixedMarketDataAvailabilityProvider(), functionResolver, compilationContext, new PoolExecutor(1, getClass()
        .getSimpleName()),
        new DependencyGraphBuilderFactory());
    // We'll require r2 which can be satisfied by f2, which in turn requires the output of f1
    // Additionally, the security should be resolved through the ComputationTargetResolver, which only has a security
    // source.
    calcConfig.addSpecificRequirement(f2.getResultSpec().toRequirementSpecification());
    CompiledViewDefinitionWithGraphsImpl compiledViewDefinition = ViewDefinitionCompiler.compile(viewDefinition, compilationServices, Instant.now(), VersionCorrection.LATEST);
    assertTrue(compiledViewDefinition.getMarketDataRequirements().isEmpty());
    assertEquals(1, compiledViewDefinition.getDependencyGraphExplorers().size());
    assertNotNull(compiledViewDefinition.getDependencyGraphExplorer("Config1"));
    assertTargets(compiledViewDefinition, sec1.getUniqueId(), t1);
    // Turning off primitive outputs should not affect the dep graph since the primitive is needed for the security
    viewDefinition.getResultModelDefinition().setPrimitiveOutputMode(ResultOutputMode.NONE);
    compiledViewDefinition = ViewDefinitionCompiler.compile(viewDefinition, compilationServices, Instant.now(), VersionCorrection.LATEST);
    assertTargets(compiledViewDefinition, sec1.getUniqueId(), t1);
    // Turning off security outputs, even if all primitive outputs are enabled, should allow the dep graph to be
    // pruned completely, since the only *terminal* output is the security output.
    viewDefinition.getResultModelDefinition().setPrimitiveOutputMode(ResultOutputMode.TERMINAL_OUTPUTS);
    viewDefinition.getResultModelDefinition().setSecurityOutputMode(ResultOutputMode.NONE);
    compiledViewDefinition = ViewDefinitionCompiler.compile(viewDefinition, compilationServices, Instant.now(), VersionCorrection.LATEST);
    assertTargets(compiledViewDefinition);
  }
View Full Code Here

    compiledViewDefinition = ViewDefinitionCompiler.compile(viewDefinition, compilationServices, Instant.now(), VersionCorrection.LATEST);
    assertTargets(compiledViewDefinition);
  }

  public void testCancel() throws Exception {
    final ViewDefinition viewDefinition = new ViewDefinition("Test", "jonathan");
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(viewDefinition, "Config1");
    viewDefinition.addViewCalculationConfiguration(calcConfig);
    final FunctionRepository functionRepo = new InMemoryFunctionRepository();
    final FunctionCompilationContext compilationContext = new FunctionCompilationContext();
    final CompiledFunctionService cfs = new CompiledFunctionService(functionRepo, new CachingFunctionRepositoryCompiler(), compilationContext);
    cfs.initialize();
    final DefaultFunctionResolver functionResolver = new DefaultFunctionResolver(cfs);
View Full Code Here

      Mockito.when(cfs.getFunctionCompilationContext()).thenReturn(ctx);
      final ViewProcessContext vpContext = Mockito.mock(ViewProcessContext.class);
      Mockito.when(vpContext.getFunctionCompilationService()).thenReturn(cfs);
      final MockContext context = new MockContext(vpContext);
      final ViewExecutionOptions options = ExecutionOptions.infinite(MarketData.live(), ExecutionFlags.none().ignoreCompilationValidity().get());
      final ViewDefinition viewDefinition = Mockito.mock(ViewDefinition.class);
      final ParallelRecompilationViewProcessWorker worker = new ParallelRecompilationViewProcessWorker(workerFactory(executor, resolutions), context, options, viewDefinition);
      callback.execute(worker, options);
      s_logger.debug("Waiting for initial compilation");
      assertEquals(context.event(), "view definition compiled"); // From primary worker
      for (int j = 0; j < 5; j++) {
View Full Code Here

      }
      startDate = DateConstraint.VALUATION_TIME.minus(DEFAULT_SAMPLING_PERIOD);
    } else {
      startDate = DateConstraint.VALUATION_TIME.minus(Period.parse(lookbackPeriodString));
    }
    final ViewDefinition viewDefinition = context.getViewCalculationConfiguration().getViewDefinition();
    final HistoricalViewEvaluationTarget tempTarget = new HistoricalViewEvaluationTarget(viewDefinition.getMarketDataUser(), startDate.toString(), true, DateConstraint.VALUATION_TIME.toString(),
        false, null, HistoricalViewEvaluationMarketDataMode.HISTORICAL);
    final ViewCalculationConfiguration calcConfig = createViewCalculationConfiguration(tempTarget.getViewDefinition(), context.getViewCalculationConfiguration().getName());
    addValueRequirements(context, target, calcConfig);
    tempTarget.getViewDefinition().addViewCalculationConfiguration(calcConfig);
    final TempTargetRepository targets = OpenGammaCompilationContext.getTempTargets(context);
View Full Code Here

 
  private Map<UniqueId, String> getPortfolioNameMap(List<ConfigEntry> configEntries) {
    Map<UniqueId, String> idToPortfolioNameMap = Maps.newHashMap();
    for (ConfigEntry configEntry : configEntries) {
      if (configEntry.getObject() instanceof ViewDefinition) {
        ViewDefinition viewDefinition = (ViewDefinition) configEntry.getObject();
        String portfolioName = getPortfolioName(viewDefinition.getPortfolioId());
        if (portfolioName != null) {
          idToPortfolioNameMap.put(viewDefinition.getPortfolioId(), portfolioName);
        } else {
          if (_verbose) {
            s_logger.warn("Couldn't find portfolio for id in view definition called " + viewDefinition.getName());
          }
        }
      }
    }
    return idToPortfolioNameMap;
View Full Code Here

    final PerViewStatusResult statusResult = new PerViewStatusResult(_securityType);
    //No need to do any work if there are no ValueRequirements to compute
    if (_valueRequirementNames.isEmpty()) {
      return statusResult;
    }
    final ViewDefinition viewDefinition = createViewDefinition();
    final ViewProcessor viewProcessor = _toolContext.getViewProcessor();
    final ViewClient client = viewProcessor.createViewClient(_user);

    final CountDownLatch latch = new CountDownLatch(1);
    client.setResultListener(new ViewStatusResultListener(latch, statusResult, viewDefinition));
    client.attachToViewProcess(viewDefinition.getUniqueId(), ExecutionOptions.infinite(_marketDataSpecification));
  
    try {
      s_logger.info("main thread waiting");
      if (!latch.await(30, TimeUnit.SECONDS)) {
        s_logger.error("Timed out waiting for {}", viewDefinition);
View Full Code Here

    configMaster.remove(viewDefinition.getUniqueId().getObjectId());
    s_logger.debug("ViewDefinition {} removed", viewDefinition.getUniqueId());
  }

  private ViewDefinition createViewDefinition() {
    final ViewDefinition viewDefinition = new ViewDefinition("VS_VIEW_" + GUIDGenerator.generate().toString(), _portfolioId, _user);
    viewDefinition.setMaxDeltaCalculationPeriod(500L);
    viewDefinition.setMaxFullCalculationPeriod(500L);
    viewDefinition.setMinDeltaCalculationPeriod(500L);
    viewDefinition.setMinFullCalculationPeriod(500L);

    ViewCalculationConfiguration defaultCalConfig = new ViewCalculationConfiguration(viewDefinition, DEFAULT_CALC_CONFIG);
    for (String requiredOutput : _valueRequirementNames) {
      defaultCalConfig.addPortfolioRequirementName(_securityType, requiredOutput);
    }
    viewDefinition.addViewCalculationConfiguration(defaultCalConfig);
    return storeViewDefinition(viewDefinition);
  }
View Full Code Here

      }
    }
  }

  private UniqueId getPaymentViewDefinition(final Portfolio portfolio) {
    final ViewDefinition viewDefinition = new ViewDefinition(VIEW_DEFINITION_PREFIX + portfolio.getName(), portfolio.getUniqueId(), UserPrincipal.getTestUser());
    final ViewCalculationConfiguration calcConfig = new ViewCalculationConfiguration(viewDefinition, CALC_CONFIG_NAME);
    for (final String requirementName : CASH_FLOW_VALUE_NAMES) {
      for (final String securityType : getPortfolioSecurityTypes(portfolio)) {
        calcConfig.addPortfolioRequirement(securityType, requirementName, ValueProperties.none());
      }
    }
    viewDefinition.addViewCalculationConfiguration(calcConfig);
    final ConfigItem<ViewDefinition> configItem = ConfigItem.of(viewDefinition, viewDefinition.getName());
    final ConfigDocument configDoc = getUserConfigMaster().add(new ConfigDocument(configItem));
    return configDoc.getUniqueId();
  }
View Full Code Here

    return Pair.of(valueName, builder.get());
  }

  @Override
  protected ViewDefinition createObject() {
    ViewDefinition viewDefinition;
    if (getPortfolioScheme() != null && getPortfolioId() != null) {
      viewDefinition = new ViewDefinition(getName(), UniqueId.of(getPortfolioScheme(), getPortfolioId()), getUserName());
      if (getPortfolioRequirements() != null) {
        for (Map.Entry<String, Map<String, String[]>> config : getPortfolioRequirements().entrySet()) {
          ViewCalculationConfiguration calcConfig = getOrCreateCalcConfig(viewDefinition, config.getKey());
          for (Map.Entry<String, String[]> security : config.getValue().entrySet()) {
            for (String value : security.getValue()) {
              final Pair<String, ValueProperties> requirement = parseValueRequirement(value);
              calcConfig.addPortfolioRequirement(security.getKey(), requirement.getFirst(), requirement.getSecond());
            }
          }
        }
      }
    } else {
      viewDefinition = new ViewDefinition(getName(), getUserName());
    }
    viewDefinition.setMinDeltaCalculationPeriod(getMinDeltaCalculationPeriod());
    viewDefinition.setMaxDeltaCalculationPeriod(getMaxDeltaCalculationPeriod());
    viewDefinition.setMinFullCalculationPeriod(getMinFullCalculationPeriod());
    viewDefinition.setMaxFullCalculationPeriod(getMaxFullCalculationPeriod());
    if (getSpecificRequirements() != null) {
      for (Entry<String, Set<String[]>> config : getSpecificRequirements().entrySet()) {
        ViewCalculationConfiguration calcConfig = getOrCreateCalcConfig(viewDefinition, config.getKey());
        for (String[] entry : config.getValue()) {
          if (entry.length < 4) {
            throw new OpenGammaRuntimeException("Not enough members of array in specific requirements. Need [0]=Name [1]=ComputationTargetType [2]=UniqueIdScheme [3]=UniqueIdValue");
          }
          final Pair<String, ValueProperties> requirement = parseValueRequirement(entry[0]);
          String type = entry[1];
          String scheme = entry[2];
          String value = entry[3];
          calcConfig.addSpecificRequirement(new ValueRequirement(requirement.getFirst(), ComputationTargetType.parse(type), UniqueId.of(scheme, value), requirement.getSecond()));
        }
      }
    }
    if (getDefaultCurrency() != null) {
      viewDefinition.setDefaultCurrency(Currency.of(getDefaultCurrency()));
    }

    if (getDefaultProperties() != null) {
      for (Entry<String, Map<String, String>> defaultProperties : getDefaultProperties().entrySet()) {
        ViewCalculationConfiguration calcConfig = getOrCreateCalcConfig(viewDefinition, defaultProperties.getKey());
        final ValueProperties.Builder properties = ValueProperties.builder();
        for (Entry<String, String> property : defaultProperties.getValue().entrySet()) {
          properties.with(property.getKey(), property.getValue());
        }
        calcConfig.setDefaultProperties(properties.get());
      }
    }
    for (ViewCalculationConfiguration calcConfig : viewDefinition.getAllCalculationConfigurations()) {
      if (calcConfig.getDefaultProperties().getValues(ValuePropertyNames.CURRENCY) == null) {
        calcConfig.setDefaultProperties(calcConfig.getDefaultProperties().copy().with(ValuePropertyNames.CURRENCY, getDefaultCurrency()).get());
      }
    }
    return viewDefinition;
View Full Code Here

TOP

Related Classes of com.opengamma.engine.view.ViewDefinition

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.