//-----------------------------------------------------------------------
 public override bool Equals(object obj)
 {
     if (obj == this)
     {
         return(true);
     }
     if (obj != null && obj.GetType() == this.GetType())
     {
         DefaultCreditRatesMarketDataLookup other = (DefaultCreditRatesMarketDataLookup)obj;
         return(JodaBeanUtils.equal(creditCurveIds, other.creditCurveIds) && JodaBeanUtils.equal(discountCurveIds, other.discountCurveIds) && JodaBeanUtils.equal(recoveryRateCurveIds, other.recoveryRateCurveIds) && JodaBeanUtils.equal(observableSource, other.observableSource));
     }
     return(false);
 }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @ImmutableConstructor private DefaultLookupCreditRatesProvider(DefaultCreditRatesMarketDataLookup lookup, com.opengamma.strata.data.MarketData marketData)
        private DefaultLookupCreditRatesProvider(DefaultCreditRatesMarketDataLookup lookup, MarketData marketData)
        {
            this.lookup     = ArgChecker.notNull(lookup, "lookup");
            this.marketData = ArgChecker.notNull(marketData, "marketData");
        }
 //-------------------------------------------------------------------------
 /// <summary>
 /// Obtains an instance based on a lookup and market data.
 /// </summary>
 /// <param name="lookup">  the lookup </param>
 /// <param name="marketData">  the market data </param>
 /// <returns> the credit rates provider </returns>
 public static DefaultLookupCreditRatesProvider of(DefaultCreditRatesMarketDataLookup lookup, MarketData marketData)
 {
     return(new DefaultLookupCreditRatesProvider(lookup, marketData));
 }