using System; using System.Collections.Generic; using ANXStatusComparer.Data; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANXStatusComparer { /// <summary> /// The result of the comparison. /// </summary> public class ResultData { #region WrongObjectPair (helper class) /// <summary> /// A pair of two base objects and two lists of wrong methods. /// </summary> public class WrongObjectPair { public BaseObject XnaObject; public List<BaseObjectElement> XnaElements = new List<BaseObjectElement>(); public BaseObject AnxObject; public List<BaseObjectElement> AnxElements = new List<BaseObjectElement>(); public List<string> MissingParents = new List<string>(); public List<string> WrongAccesses = new List<string>(); } #endregion #region Public #region Namespace Results /// <summary> /// List of missing namespaces in ANX. /// </summary> public List<string> MissingNamespaces { get; private set; } /// <summary> /// List of implemented namespaces in ANX. /// </summary> public List<string> ImplementedNamespaces { get; private set; } #endregion #region Class Results /// <summary> /// List of missing classes. /// </summary> public List<BaseObject> MissingClasses { get; private set; } /// <summary> /// List of wrong class implementations. /// </summary> public List<WrongObjectPair> WrongClasses { get; private set; } /// <summary> /// List of implemented classes. /// </summary> public List<BaseObject> ImplementedClasses { get; private set; } public int NumberOfFinishedClasses { get { int result = 0; foreach (BaseObject obj in ImplementedClasses) { if (obj.HasPercentageAttribute && obj.PercentageComplete == 100) { result++; } } return result; } } #endregion #region Interface Results /// <summary> /// List of missing interfaces. /// </summary> public List<BaseObject> MissingInterfaces { get; private set; } /// <summary> /// List of wrong interface implementations. /// </summary> public List<WrongObjectPair> WrongInterfaces { get; private set; } /// <summary> /// List of implemented interfaces. /// </summary> public List<BaseObject> ImplementedInterfaces { get; private set; } public int NumberOfFinishedInterfaces { get { int result = 0; foreach (BaseObject obj in ImplementedInterfaces) { if (obj.HasPercentageAttribute && obj.PercentageComplete == 100) { result++; } } return result; } } #endregion #region Struct Results /// <summary> /// List of missing structs. /// </summary> public List<BaseObject> MissingStructs { get; private set; } /// <summary> /// List of wrong struct implementations. /// </summary> public List<WrongObjectPair> WrongStructs { get; private set; } /// <summary> /// List of implemented structs. /// </summary> public List<BaseObject> ImplementedStructs { get; private set; } public int NumberOfFinishedStructs { get { int result = 0; foreach (BaseObject obj in ImplementedStructs) { if (obj.HasPercentageAttribute && obj.PercentageComplete == 100) { result++; } } return result; } } #endregion #region Enum Results /// <summary> /// List of missing enumerations. /// </summary> public List<EnumData> MissingEnums { get; private set; } /// <summary> /// List of implemented enumerations. /// </summary> public List<EnumData> ImplementedEnums { get; private set; } /// <summary> /// List of wrong enumerations. /// </summary> public List<KeyValuePair<EnumData, EnumData>> WrongEnums { get; private set; } #endregion #endregion #region Constructor /// <summary> /// Create a new result data holder. /// </summary> public ResultData() { MissingNamespaces = new List<string>(); ImplementedNamespaces = new List<string>(); MissingEnums = new List<EnumData>(); ImplementedEnums = new List<EnumData>(); WrongEnums = new List<KeyValuePair<EnumData, EnumData>>(); MissingStructs = new List<BaseObject>(); ImplementedStructs = new List<BaseObject>(); WrongStructs = new List<WrongObjectPair>(); MissingInterfaces = new List<BaseObject>(); ImplementedInterfaces = new List<BaseObject>(); WrongInterfaces = new List<WrongObjectPair>(); MissingClasses = new List<BaseObject>(); ImplementedClasses = new List<BaseObject>(); WrongClasses = new List<WrongObjectPair>(); } #endregion } }