mirror of
https://github.com/claunia/SabreTools.git
synced 2025-12-16 19:14:27 +00:00
Add and use Relation enum
This commit is contained in:
@@ -3545,6 +3545,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
.Replace("%size%", size);
|
.Replace("%size%", size);
|
||||||
|
|
||||||
// TODO: Add GameName logic here too?
|
// TODO: Add GameName logic here too?
|
||||||
|
// TODO: Figure out what I meant by the above ^
|
||||||
|
|
||||||
return fix;
|
return fix;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
{
|
{
|
||||||
Tag = reader.GetAttribute("tag"),
|
Tag = reader.GetAttribute("tag"),
|
||||||
Mask = reader.GetAttribute("mask"),
|
Mask = reader.GetAttribute("mask"),
|
||||||
Relation = reader.GetAttribute("relation"),
|
Relation = reader.GetAttribute("relation").AsRelation(),
|
||||||
Value = reader.GetAttribute("value"),
|
Value = reader.GetAttribute("value"),
|
||||||
|
|
||||||
Source = new Source
|
Source = new Source
|
||||||
@@ -746,7 +746,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
dipSwitch.Conditions.Add(condition);
|
dipSwitch.Conditions.Add(condition);
|
||||||
@@ -820,7 +820,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
dipValue.Conditions.Add(condition);
|
dipValue.Conditions.Add(condition);
|
||||||
@@ -870,7 +870,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
configuration.Conditions.Add(condition);
|
configuration.Conditions.Add(condition);
|
||||||
@@ -944,7 +944,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
confSetting.Conditions.Add(condition);
|
confSetting.Conditions.Add(condition);
|
||||||
@@ -1037,7 +1037,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
adjuster.Conditions.Add(condition);
|
adjuster.Conditions.Add(condition);
|
||||||
@@ -1320,7 +1320,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", adjusterCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", adjusterCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", adjusterCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", adjusterCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", adjusterCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", adjusterCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", adjusterCondition.Value);
|
xtw.WriteOptionalAttributeString("value", adjusterCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1352,7 +1352,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", condition.Tag);
|
xtw.WriteOptionalAttributeString("tag", condition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", condition.Mask);
|
xtw.WriteOptionalAttributeString("mask", condition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", condition.Relation);
|
xtw.WriteOptionalAttributeString("relation", condition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", condition.Value);
|
xtw.WriteOptionalAttributeString("value", condition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
@@ -1371,7 +1371,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", configurationCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", configurationCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", configurationCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", configurationCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", configurationCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", configurationCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", configurationCondition.Value);
|
xtw.WriteOptionalAttributeString("value", configurationCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1451,7 +1451,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", dipSwitchCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", dipSwitchCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", dipSwitchCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", dipSwitchCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", dipSwitchCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", dipSwitchCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", dipSwitchCondition.Value);
|
xtw.WriteOptionalAttributeString("value", dipSwitchCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1482,7 +1482,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", dipValueCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", dipValueCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", dipValueCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", dipValueCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", dipValueCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", dipValueCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", dipValueCondition.Value);
|
xtw.WriteOptionalAttributeString("value", dipValueCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ namespace SabreTools.Library.DatFiles
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents parsing and writing of a Logiqx-derived DAT
|
/// Represents parsing and writing of a Logiqx-derived DAT
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// TODO: Add XSD validation for all XML DAT types (maybe?)
|
|
||||||
internal class Logiqx : DatFile
|
internal class Logiqx : DatFile
|
||||||
{
|
{
|
||||||
// Private instance variables specific to Logiqx DATs
|
// Private instance variables specific to Logiqx DATs
|
||||||
|
|||||||
@@ -664,7 +664,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
(adjuster as Adjuster).Conditions.Add(condition);
|
(adjuster as Adjuster).Conditions.Add(condition);
|
||||||
@@ -718,7 +718,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
(configuration as Configuration).Conditions.Add(condition);
|
(configuration as Configuration).Conditions.Add(condition);
|
||||||
@@ -792,7 +792,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
confSetting.Conditions.Add(condition);
|
confSetting.Conditions.Add(condition);
|
||||||
@@ -846,7 +846,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
(dipSwitch as DipSwitch).Conditions.Add(condition);
|
(dipSwitch as DipSwitch).Conditions.Add(condition);
|
||||||
@@ -920,7 +920,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
var condition = new Condition();
|
var condition = new Condition();
|
||||||
condition.Tag = reader.GetAttribute("tag");
|
condition.Tag = reader.GetAttribute("tag");
|
||||||
condition.Mask = reader.GetAttribute("mask");
|
condition.Mask = reader.GetAttribute("mask");
|
||||||
condition.Relation = reader.GetAttribute("relation");
|
condition.Relation = reader.GetAttribute("relation").AsRelation();
|
||||||
condition.Value = reader.GetAttribute("value");
|
condition.Value = reader.GetAttribute("value");
|
||||||
|
|
||||||
dipValue.Conditions.Add(condition);
|
dipValue.Conditions.Add(condition);
|
||||||
@@ -1221,7 +1221,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", adjusterCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", adjusterCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", adjusterCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", adjusterCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", adjusterCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", adjusterCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", adjusterCondition.Value);
|
xtw.WriteOptionalAttributeString("value", adjusterCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1264,7 +1264,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteAttributeString("type", "condition");
|
xtw.WriteAttributeString("type", "condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", condition.Tag);
|
xtw.WriteOptionalAttributeString("tag", condition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", condition.Mask);
|
xtw.WriteOptionalAttributeString("mask", condition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", condition.Relation);
|
xtw.WriteOptionalAttributeString("relation", condition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", condition.Value);
|
xtw.WriteOptionalAttributeString("value", condition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
break;
|
break;
|
||||||
@@ -1284,7 +1284,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", configurationCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", configurationCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", configurationCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", configurationCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", configurationCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", configurationCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", configurationCondition.Value);
|
xtw.WriteOptionalAttributeString("value", configurationCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1367,7 +1367,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", dipSwitchCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", dipSwitchCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", dipSwitchCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", dipSwitchCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", dipSwitchCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", dipSwitchCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", dipSwitchCondition.Value);
|
xtw.WriteOptionalAttributeString("value", dipSwitchCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
@@ -1398,7 +1398,7 @@ namespace SabreTools.Library.DatFiles
|
|||||||
xtw.WriteStartElement("condition");
|
xtw.WriteStartElement("condition");
|
||||||
xtw.WriteOptionalAttributeString("tag", dipValueCondition.Tag);
|
xtw.WriteOptionalAttributeString("tag", dipValueCondition.Tag);
|
||||||
xtw.WriteOptionalAttributeString("mask", dipValueCondition.Mask);
|
xtw.WriteOptionalAttributeString("mask", dipValueCondition.Mask);
|
||||||
xtw.WriteOptionalAttributeString("relation", dipValueCondition.Relation);
|
xtw.WriteOptionalAttributeString("relation", dipValueCondition.Relation.FromRelation());
|
||||||
xtw.WriteOptionalAttributeString("value", dipValueCondition.Value);
|
xtw.WriteOptionalAttributeString("value", dipValueCondition.Value);
|
||||||
xtw.WriteEndElement();
|
xtw.WriteEndElement();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
public long? Size { get; set; }
|
public long? Size { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Byte width of the area
|
/// Word width for the area
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonProperty("width", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
[JsonProperty("width", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||||
public string Width { get; set; } // TODO: (8|16|32|64) "8"
|
public string Width { get; set; } // TODO: (8|16|32|64) "8"
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
||||||
using SabreTools.Library.Filtering;
|
using SabreTools.Library.Filtering;
|
||||||
|
using SabreTools.Library.Tools;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
using Newtonsoft.Json.Converters;
|
||||||
|
|
||||||
namespace SabreTools.Library.DatItems
|
namespace SabreTools.Library.DatItems
|
||||||
{
|
{
|
||||||
@@ -30,7 +32,8 @@ namespace SabreTools.Library.DatItems
|
|||||||
/// Condition relationship
|
/// Condition relationship
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[JsonProperty("relation", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
[JsonProperty("relation", DefaultValueHandling = DefaultValueHandling.Ignore)]
|
||||||
public string Relation { get; set; } // TODO: (eq|ne|gt|le|lt|ge)
|
[JsonConverter(typeof(StringEnumConverter))]
|
||||||
|
public Relation Relation { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Condition value
|
/// Condition value
|
||||||
@@ -71,7 +74,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
Mask = mappings[Field.DatItem_Condition_Mask];
|
Mask = mappings[Field.DatItem_Condition_Mask];
|
||||||
|
|
||||||
if (mappings.Keys.Contains(Field.DatItem_Condition_Relation))
|
if (mappings.Keys.Contains(Field.DatItem_Condition_Relation))
|
||||||
Relation = mappings[Field.DatItem_Condition_Relation];
|
Relation = mappings[Field.DatItem_Condition_Relation].AsRelation();
|
||||||
|
|
||||||
if (mappings.Keys.Contains(Field.DatItem_Condition_Value))
|
if (mappings.Keys.Contains(Field.DatItem_Condition_Value))
|
||||||
Value = mappings[Field.DatItem_Condition_Value];
|
Value = mappings[Field.DatItem_Condition_Value];
|
||||||
@@ -85,7 +88,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
Mask = mappings[Field.DatItem_Mask];
|
Mask = mappings[Field.DatItem_Mask];
|
||||||
|
|
||||||
if (mappings.Keys.Contains(Field.DatItem_Relation))
|
if (mappings.Keys.Contains(Field.DatItem_Relation))
|
||||||
Relation = mappings[Field.DatItem_Relation];
|
Relation = mappings[Field.DatItem_Relation].AsRelation();
|
||||||
|
|
||||||
if (mappings.Keys.Contains(Field.DatItem_Value))
|
if (mappings.Keys.Contains(Field.DatItem_Value))
|
||||||
Value = mappings[Field.DatItem_Value];
|
Value = mappings[Field.DatItem_Value];
|
||||||
@@ -187,9 +190,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on relation
|
// Filter on relation
|
||||||
if (filter.DatItem_Condition_Relation.MatchesPositiveSet(Relation) == false)
|
if (filter.DatItem_Condition_Relation.MatchesPositive(Relation.NULL, Relation) == false)
|
||||||
return false;
|
return false;
|
||||||
if (filter.DatItem_Condition_Relation.MatchesNegativeSet(Relation) == true)
|
if (filter.DatItem_Condition_Relation.MatchesNegative(Relation.NULL, Relation) == true)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on value
|
// Filter on value
|
||||||
@@ -213,9 +216,9 @@ namespace SabreTools.Library.DatItems
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on relation
|
// Filter on relation
|
||||||
if (filter.DatItem_Relation.MatchesPositiveSet(Relation) == false)
|
if (filter.DatItem_Relation.MatchesPositive(Relation.NULL, Relation) == false)
|
||||||
return false;
|
return false;
|
||||||
if (filter.DatItem_Relation.MatchesNegativeSet(Relation) == true)
|
if (filter.DatItem_Relation.MatchesNegative(Relation.NULL, Relation) == true)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Filter on value
|
// Filter on value
|
||||||
@@ -257,7 +260,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
Mask = null;
|
Mask = null;
|
||||||
|
|
||||||
if (fields.Contains(Field.DatItem_Condition_Relation))
|
if (fields.Contains(Field.DatItem_Condition_Relation))
|
||||||
Relation = null;
|
Relation = Relation.NULL;
|
||||||
|
|
||||||
if (fields.Contains(Field.DatItem_Condition_Value))
|
if (fields.Contains(Field.DatItem_Condition_Value))
|
||||||
Value = null;
|
Value = null;
|
||||||
@@ -271,7 +274,7 @@ namespace SabreTools.Library.DatItems
|
|||||||
Mask = null;
|
Mask = null;
|
||||||
|
|
||||||
if (fields.Contains(Field.DatItem_Relation))
|
if (fields.Contains(Field.DatItem_Relation))
|
||||||
Relation = null;
|
Relation = Relation.NULL;
|
||||||
|
|
||||||
if (fields.Contains(Field.DatItem_Value))
|
if (fields.Contains(Field.DatItem_Value))
|
||||||
Value = null;
|
Value = null;
|
||||||
|
|||||||
@@ -560,6 +560,25 @@ namespace SabreTools.Library.DatItems
|
|||||||
SCCPlusCart = 1 << 2,
|
SCCPlusCart = 1 << 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Determine relation of value to condition
|
||||||
|
/// </summary>
|
||||||
|
[Flags]
|
||||||
|
public enum Relation
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// This is a fake flag that is used for filter only
|
||||||
|
/// </summary>
|
||||||
|
NULL = 0,
|
||||||
|
|
||||||
|
Equal = 1 << 0,
|
||||||
|
NotEqual = 1 << 1,
|
||||||
|
GreaterThan = 1 << 2,
|
||||||
|
LessThanOrEqual = 1 << 3,
|
||||||
|
LessThan = 1 << 4,
|
||||||
|
GreaterThanOrEqual = 1 << 5,
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Determine machine runnable status
|
/// Determine machine runnable status
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -169,10 +169,10 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
// Condition
|
// Condition
|
||||||
public FilterItem<string> DatItem_Mask { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> DatItem_Mask { get; private set; } = new FilterItem<string>();
|
||||||
public FilterItem<string> DatItem_Relation { get; private set; } = new FilterItem<string>();
|
public FilterItem<Relation> DatItem_Relation { get; private set; } = new FilterItem<Relation>() { Positive = Relation.NULL, Negative = Relation.NULL };
|
||||||
public FilterItem<string> DatItem_Condition_Tag { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> DatItem_Condition_Tag { get; private set; } = new FilterItem<string>();
|
||||||
public FilterItem<string> DatItem_Condition_Mask { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> DatItem_Condition_Mask { get; private set; } = new FilterItem<string>();
|
||||||
public FilterItem<string> DatItem_Condition_Relation { get; private set; } = new FilterItem<string>();
|
public FilterItem<Relation> DatItem_Condition_Relation { get; private set; } = new FilterItem<Relation>() { Positive = Relation.NULL, Negative = Relation.NULL };
|
||||||
public FilterItem<string> DatItem_Condition_Value { get; private set; } = new FilterItem<string>();
|
public FilterItem<string> DatItem_Condition_Value { get; private set; } = new FilterItem<string>();
|
||||||
|
|
||||||
// Control
|
// Control
|
||||||
@@ -1043,9 +1043,9 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
case Field.DatItem_Relation:
|
case Field.DatItem_Relation:
|
||||||
if (negate)
|
if (negate)
|
||||||
DatItem_Relation.NegativeSet.Add(value);
|
DatItem_Relation.Negative |= value.AsRelation();
|
||||||
else
|
else
|
||||||
DatItem_Relation.PositiveSet.Add(value);
|
DatItem_Relation.Positive |= value.AsRelation();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Field.DatItem_Condition_Tag:
|
case Field.DatItem_Condition_Tag:
|
||||||
@@ -1064,9 +1064,9 @@ namespace SabreTools.Library.Filtering
|
|||||||
|
|
||||||
case Field.DatItem_Condition_Relation:
|
case Field.DatItem_Condition_Relation:
|
||||||
if (negate)
|
if (negate)
|
||||||
DatItem_Condition_Relation.NegativeSet.Add(value);
|
DatItem_Condition_Relation.Negative |= value.AsRelation();
|
||||||
else
|
else
|
||||||
DatItem_Condition_Relation.PositiveSet.Add(value);
|
DatItem_Condition_Relation.Positive |= value.AsRelation();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Field.DatItem_Condition_Value:
|
case Field.DatItem_Condition_Value:
|
||||||
|
|||||||
@@ -1971,6 +1971,45 @@ namespace SabreTools.Library.Tools
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get Relation value from input string
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="relation">String to get value from</param>
|
||||||
|
/// <returns>Relation value corresponding to the string</returns>
|
||||||
|
public static Relation AsRelation(this string relation)
|
||||||
|
{
|
||||||
|
#if NET_FRAMEWORK
|
||||||
|
switch (relation?.ToLowerInvariant())
|
||||||
|
{
|
||||||
|
case "eq":
|
||||||
|
return Relation.Equal;
|
||||||
|
case "ne":
|
||||||
|
return Relation.NotEqual;
|
||||||
|
case "gt":
|
||||||
|
return Relation.GreaterThan;
|
||||||
|
case "le":
|
||||||
|
return Relation.LessThanOrEqual;
|
||||||
|
case "lt":
|
||||||
|
return Relation.LessThan;
|
||||||
|
case "ge":
|
||||||
|
return Relation.GreaterThanOrEqual;
|
||||||
|
default:
|
||||||
|
return Relation.NULL;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return relation?.ToLowerInvariant() switch
|
||||||
|
{
|
||||||
|
"eq" => Relation.Equal,
|
||||||
|
"ne" => Relation.NotEqual,
|
||||||
|
"gt" => Relation.GreaterThan,
|
||||||
|
"le" => Relation.LessThanOrEqual,
|
||||||
|
"lt" => Relation.LessThan,
|
||||||
|
"ge" => Relation.GreaterThanOrEqual,
|
||||||
|
_ => Relation.NULL,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get Runnable value from input string
|
/// Get Runnable value from input string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -2784,6 +2823,45 @@ namespace SabreTools.Library.Tools
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get string value from input Relation
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="relation">Relation to get value from</param>
|
||||||
|
/// <returns>String value corresponding to the Relation</returns>
|
||||||
|
public static string FromRelation(this Relation relation)
|
||||||
|
{
|
||||||
|
#if NET_FRAMEWORK
|
||||||
|
switch (relation)
|
||||||
|
{
|
||||||
|
case Relation.Equal:
|
||||||
|
return "eq";
|
||||||
|
case Relation.NotEqual:
|
||||||
|
return "ne";
|
||||||
|
case Relation.GreaterThan:
|
||||||
|
return "gt";
|
||||||
|
case Relation.LessThanOrEqual:
|
||||||
|
return "le";
|
||||||
|
case Relation.LessThan:
|
||||||
|
return "lt";
|
||||||
|
case Relation.GreaterThanOrEqual:
|
||||||
|
return "ge";
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
return relation switch
|
||||||
|
{
|
||||||
|
Relation.Equal => "eq",
|
||||||
|
Relation.NotEqual => "ne",
|
||||||
|
Relation.GreaterThan => "gt",
|
||||||
|
Relation.LessThanOrEqual => "le",
|
||||||
|
Relation.LessThan => "lt",
|
||||||
|
Relation.GreaterThanOrEqual => "ge",
|
||||||
|
_ => null,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Get string value from input Runnable
|
/// Get string value from input Runnable
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user