class FxOptionVolatilitiesNode implements ImmutableBean, Serializable {

  public static FxOptionVolatilitiesNode of(
      CurrencyPair currencyPair,
      DaysAdjustment spotDateOffset,
      BusinessDayAdjustment businessDayAdjustment,
      ValueType quoteValueType,
      QuoteId quoteId,
      Tenor tenor,
      Strike strike) {

    DaysAdjustment expiryDateOffset = expiryDateOffset(spotDateOffset);

    return new FxOptionVolatilitiesNode(
        currencyPair,
        quoteId.toString(),
        spotDateOffset,
        businessDayAdjustment,
        expiryDateOffset,
        quoteValueType,
        quoteId,
        tenor,
        strike);
  }

  private  FxOptionVolatilitiesNode(
      CurrencyPair currencyPair,
      String label,
      DaysAdjustment spotDateOffset,
      BusinessDayAdjustment businessDayAdjustment,
      DaysAdjustment expiryDateOffset,
      ValueType quoteValueType,
      QuoteId quoteId,
      Tenor tenor,
      Strike strike);

}