/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.engine.target; import java.util.Collection; import com.opengamma.engine.ComputationTargetResolver; /** * Provides an enumeration of available target types. An instance may typically be closely coupled with the {@link ComputationTargetResolver} as that resolver should be capable of resolving any of the * listed types. */ public interface ComputationTargetTypeProvider { /** * Fetches all of the known simple types. This is likely to be at a minimum the standard public constants {@link ComputationTargetType#PORTFOLIO_NODE}, {@link ComputationTargetType#POSITION}, * {@link ComputationTargetType#SECURITY}, and so on. It should also include any additional basic types that aren't part of OG-Engine but appropriate for the attached function repository or * repositories. This list should not include union or nested types such as {@link ComputationTargetType#POSITION_OR_TRADE}. * * @return the known simple types, not null */ Collection<ComputationTargetType> getSimpleTypes(); /** * Fetches any known union or nested types that are commonly used for convenience. For example, this might include {@link ComputationTargetType#POSITION_OR_TRADE}. * * @return any additional types, not null */ Collection<ComputationTargetType> getAdditionalTypes(); /** * Fetches all known simple and any union/nested types. This should be the union of the results of {@link #getAllSimpleTypes} and {@link #getAdditionalTypes}. * * @return all known types, not null */ Collection<ComputationTargetType> getAllTypes(); }