/// <summary> /// Uses TripContextStateFactory to inject context /// object with correct concrete TripState object /// using the TripStateStatus enum in Trip instance /// </summary> /// <param name="trip"></param> public TripContext(Trip trip) { Debug.Assert(trip != null, "trip cannot be null"); Trip = trip; TripState = TripContextStateFactory.Get(this); }