private static CompetitorXml AssertCompetitorNotNull(CompetitionRunResultXml source)
        {
            if (source.Competitor == null)
            {
                throw new InvalidDataException("Competitor is missing in XML file.");
            }

            return(source.Competitor);
        }
        public static CompetitionRunResult FromXmlObject(CompetitionRunResultXml source)
        {
            Guard.NotNull(source, nameof(source));
            CompetitorXml competitor = AssertCompetitorNotNull(source);

            // @formatter:keep_existing_linebreaks true

            return(new CompetitionRunResult(CompetitorXml.FromXmlObject(competitor))
                   .ChangeTimings(CompetitionRunTimingsXml.FromXmlObject(source.Timings))
                   .ChangeFaultCount(source.FaultCount)
                   .ChangeRefusalCount(source.RefusalCount)
                   .ChangeIsEliminated(source.IsEliminated));

            // @formatter:keep_existing_linebreaks restore
        }