@@ -0,0 +1,2209 @@
+/**%0A * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies%0A *%0A * Please see distribution for license.%0A */%0Apackage com.opengamma.strata.basics.market;%0A%0A/**%0A * An object that can be resolved against reference data.%0A * %3Cp%3E%0A * Interface marking those objects that can be resolved using %7B@link ReferenceData%7D.%0A * Implementations of this interface will use %7B@linkplain ReferenceDataId identifiers%7D%0A * to refer to key concepts, such as holiday calendars and securities.%0A * %3Cp%3E%0A * When the %7B@code resolve(ReferenceData)%7D method is called, the identifiers are resolved.%0A * The resolving process will take each identifier, look it up using the %7B@code ReferenceData%7D,%0A * and return a new %22resolved%22 instance.%0A * Typically the result is of a type that is optimized for pricing.%0A * %3Cp%3E%0A * Resolved objects may be bound to data that changes over time, such as holiday calendars.%0A * If the data changes, such as the addition of a new holiday, the resolved form will not be updated.%0A * Care must be taken when placing the resolved form in a cache or persistence layer.%0A * %3Cp%3E%0A * Implementations must be immutable and thread-safe beans.%0A * %0A * @param %3CT%3E  the type of the resolved result%0A */%0Apublic interface Resolvable%3CT%3E %7B%0A%0A  /**%0A   * Resolves this object using the specified reference data.%0A   * %3Cp%3E%0A   * This converts the object implementing this interface to the equivalent resolved form.%0A   * All %7B@link ReferenceDataId%7D identifiers in this instance will be resolved.%0A   * The resolved form will typically be a type that is optimized for pricing.%0A   * %3Cp%3E%0A   * Resolved objects may be bound to data that changes over time, such as holiday calendars.%0A   * If the data changes, such as the addition of a new holiday, the resolved form will not be updated.%0A   * Care must be taken when placing the resolved form in a cache or persistence layer.%0A   * %0A   * @param refData  the reference data to use when resolving%0A   * @return the resolved instance%0A   * @throws ReferenceDataNotFoundException if an identifier cannot be resolved in the reference data%0A   * @throws RuntimeException if unable to resolve due to an invalid definition%0A   */%0A  public abstract T resolve(ReferenceData refData);%0A%0A%7D%0A

Add Resolvable interface