//------------------------------------------------------------------------- /// <summary> /// Converts an FpML 'BusinessCentersOrReference.model' to a {@code HolidayCalendar}. /// </summary> /// <param name="baseEl"> the FpML business centers or reference element to parse </param> /// <returns> the holiday calendar </returns> /// <exception cref="RuntimeException"> if unable to parse </exception> public HolidayCalendarId parseBusinessCenters(XmlElement baseEl) { // FpML content: ('businessCentersReference' | 'businessCenters') // FpML 'businessCenters' content: ('businessCenter+') // Each 'businessCenter' is a location treated as a holiday calendar Optional <XmlElement> optionalBusinessCentersEl = baseEl.findChild("businessCenters"); XmlElement businessCentersEl = optionalBusinessCentersEl.orElseGet(() => lookupReference(baseEl.getChild("businessCentersReference"))); HolidayCalendarId calendar = HolidayCalendarIds.NO_HOLIDAYS; foreach (XmlElement businessCenterEl in businessCentersEl.getChildren("businessCenter")) { calendar = calendar.combinedWith(parseBusinessCenter(businessCenterEl)); } return(calendar); }
//------------------------------------------------------------------------- //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @ImmutablePreBuild private static void preBuild(Builder builder) private static void preBuild(Builder builder) { if (builder.fixingDateOffset_Renamed == null && builder.fixingCalendar_Renamed != null && builder.maturityDateOffset_Renamed != null) { int days = builder.maturityDateOffset_Renamed.Days; HolidayCalendarId maturityCal = builder.maturityDateOffset_Renamed.Calendar; if (maturityCal.combinedWith(builder.fixingCalendar_Renamed).Equals(maturityCal)) { builder.fixingDateOffset_Renamed = DaysAdjustment.ofBusinessDays(-days, maturityCal); } else { builder.fixingDateOffset_Renamed = DaysAdjustment.ofBusinessDays(-days, maturityCal, BusinessDayAdjustment.of(BusinessDayConventions.PRECEDING, builder.fixingCalendar_Renamed)); } } }