using System.Xml.Serialization; using Newtonsoft.Json; using SabreTools.Core.Tools; namespace SabreTools.DatItems.Formats { /// /// Represents the a feature of the machine /// [JsonObject("feature"), XmlRoot("feature")] public sealed class Feature : DatItem { #region Fields /// /> protected override ItemType ItemType => ItemType.Feature; /// /> protected override string? NameKey => null; #endregion #region Constructors public Feature() : base() { } public Feature(Models.Metadata.Feature item) : base(item) { // Process flag values if (GetStringFieldValue(Models.Metadata.Feature.OverallKey) != null) SetFieldValue(Models.Metadata.Feature.OverallKey, GetStringFieldValue(Models.Metadata.Feature.OverallKey).AsEnumValue().AsStringValue()); if (GetStringFieldValue(Models.Metadata.Feature.StatusKey) != null) SetFieldValue(Models.Metadata.Feature.StatusKey, GetStringFieldValue(Models.Metadata.Feature.StatusKey).AsEnumValue().AsStringValue()); if (GetStringFieldValue(Models.Metadata.Feature.FeatureTypeKey) != null) SetFieldValue(Models.Metadata.Feature.FeatureTypeKey, GetStringFieldValue(Models.Metadata.Feature.FeatureTypeKey).AsEnumValue().AsStringValue()); } #endregion } }