private FlightEnabledAbstractValue WithAdditionalEnabledFlightsCore(FlightEnabledAbstractValue newEnabledFlights) { Debug.Assert(Kind != FlightEnabledAbstractValueKind.Unknown); if (Kind != FlightEnabledAbstractValueKind.Known) { return(newEnabledFlights); } if (newEnabledFlights.Height == 0) { return(new FlightEnabledAbstractValue( EnabledFlights.AddRange(newEnabledFlights.EnabledFlights), Parents, Height, FlightEnabledAbstractValueKind.Known)); } return(newEnabledFlights.WithRootParent(this)); }
public override string ToString() { return(GetParentString() + GetFlightsString()); string GetParentString() { if (Parents.IsEmpty) { return(string.Empty); } using var parentsBuilder = ArrayBuilder <string> .GetInstance(Parents.Count); foreach (var parent in Parents) { parentsBuilder.Add(parent.ToString()); } var result = string.Join(" || ", parentsBuilder.Order()); if (parentsBuilder.Count > 1) { result = $"({result})"; } return(result); } string GetFlightsString() { if (EnabledFlights.IsEmpty) { return(string.Empty); } var result = string.Join(" && ", EnabledFlights.Order()); if (Parents.Count > 0) { result = $" && {result}"; } return(result); } }