//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
#nullable disable
using System.Collections.Generic;
namespace Microsoft.SqlTools.ServiceLayer.ExecutionPlan.Contracts
{
///
/// An ExecutionGraphComparisonResult is composed of an execution plan node, but has additional properties
/// to keep track of matching ExecutionGraphComparisonResult nodes for execution plan nodes present in the
/// the graph being compared against. This class also features a group index that can assist
/// with coloring similar sections of execution plans in the UI.
///
public class ExecutionGraphComparisonResult
{
///
/// The base ExecutionPlanNode for the ExecutionGraphComparisonResult.
///
public ExecutionPlanNode BaseNode { get; set; }
///
/// The children of the ExecutionGraphComparisonResult.
///
public List Children { get; set; } = new List();
///
/// The group index of the ExecutionGraphComparisonResult.
///
public int GroupIndex { get; set; }
///
/// Flag to indicate if the ExecutionGraphComparisonResult has a matching node in the compared execution plan.
///
public bool HasMatch { get; set; }
///
/// List of matching nodes for the ExecutionGraphComparisonResult.
///
public List MatchingNodesId { get; set; } = new List();
///
/// The parent of the ExecutionGraphComparisonResult.
///
public ExecutionGraphComparisonResult ParentNode { get; set; }
}
}