/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.curve.exposure; import java.util.List; import com.opengamma.core.position.Trade; import com.opengamma.financial.analytics.curve.CurveConstructionConfiguration; import com.opengamma.id.ExternalId; /** * A function that returns a list of implementation specific {@link ExternalId} descriptions for a given trade, which are * used by a {@link ExposureFunctions} configuration object to resolve the {@link CurveConstructionConfiguration} used * for pricing. */ public interface ExposureFunction { /** Separator */ String SEPARATOR = "_"; /** Security identifier */ String SECURITY_IDENTIFIER = "SecurityType"; /** * Returns the name of the exposure function implementation. * @return the name of the exposure function implementation. */ String getName(); /** * Returns the identifiers, specific to the implementation of the exposure function, that the exposure function will * use to determine which curve construction configuration to use. * @param trade the trade to retrieve identifiers from. * @return the identifiers used to look up the curve construction configuration. */ List<ExternalId> getIds(Trade trade); }