/// <inheritdoc /> public override bool FinalizeAnalysis() { if (PipGraph == null) { Logger.GraphFragmentMissingGraph(LoggingContext); return(false); } try { var serializer = new PipGraphFragmentSerializer(Context, new PipGraphFragmentContext()); var pips = PipGraph.RetrieveScheduledPips().ToList(); if (SerializeUsingTopSort) { var finalPipList = TopSort(pips); serializer.SerializeTopSort(m_absoluteOutputPath, finalPipList, pips.Count, m_description); } else { serializer.SerializeSerially(m_absoluteOutputPath, pips, m_description); } Logger.GraphFragmentSerializationStats(LoggingContext, serializer.FragmentDescription, serializer.Stats.ToString()); } catch (Exception e) { Logger.GraphFragmentExceptionOnSerializingFragment(LoggingContext, m_absoluteOutputPath.ToString(Context.PathTable), e.ToString()); return(false); } return(base.FinalizeAnalysis()); }