diff --git a/CHANGELIST.md b/CHANGELIST.md
index cc6faec2..119e3e97 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -42,6 +42,7 @@
- Add DIC parameters tests
- Add unused min/max parameters for numeric inputs
- Add Int32 array input type
+- Wire up input boundaries
### 3.2.4 (2024-11-24)
diff --git a/MPF.ExecutionContexts/Data/Int16Input.cs b/MPF.ExecutionContexts/Data/Int16Input.cs
index c15a6656..7e713b03 100644
--- a/MPF.ExecutionContexts/Data/Int16Input.cs
+++ b/MPF.ExecutionContexts/Data/Int16Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : short.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : short.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : short.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out short? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : short.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/Int32ArrInput.cs b/MPF.ExecutionContexts/Data/Int32ArrInput.cs
index 8655ca0c..9844eeb9 100644
--- a/MPF.ExecutionContexts/Data/Int32ArrInput.cs
+++ b/MPF.ExecutionContexts/Data/Int32ArrInput.cs
@@ -105,6 +105,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value[i] = _required ? null : int.MinValue;
+ Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i];
+ Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i];
return !_required;
}
@@ -113,11 +115,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value[i] = value;
+ Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i];
+ Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i];
continue;
}
// Return value based on required flag
Value[i] = _required ? null : int.MinValue;
+ Value[i] = (MinValue != null && Value[i] < MinValue) ? MinValue : Value[i];
+ Value[i] = (MaxValue != null && Value[i] > MaxValue) ? MaxValue : Value[i];
return !_required;
}
diff --git a/MPF.ExecutionContexts/Data/Int32Input.cs b/MPF.ExecutionContexts/Data/Int32Input.cs
index e8390550..96f1e79b 100644
--- a/MPF.ExecutionContexts/Data/Int32Input.cs
+++ b/MPF.ExecutionContexts/Data/Int32Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : int.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : int.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : int.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out int? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : int.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/Int64Input.cs b/MPF.ExecutionContexts/Data/Int64Input.cs
index 5385551c..dcb3116b 100644
--- a/MPF.ExecutionContexts/Data/Int64Input.cs
+++ b/MPF.ExecutionContexts/Data/Int64Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : long.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : long.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : long.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out long? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : long.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/Int8Input.cs b/MPF.ExecutionContexts/Data/Int8Input.cs
index f002cca9..e602944a 100644
--- a/MPF.ExecutionContexts/Data/Int8Input.cs
+++ b/MPF.ExecutionContexts/Data/Int8Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : sbyte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : sbyte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : sbyte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out sbyte? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : sbyte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/UInt16Input.cs b/MPF.ExecutionContexts/Data/UInt16Input.cs
index f9348bf2..f16d14d8 100644
--- a/MPF.ExecutionContexts/Data/UInt16Input.cs
+++ b/MPF.ExecutionContexts/Data/UInt16Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : ushort.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : ushort.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : ushort.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out ushort? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : ushort.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/UInt32Input.cs b/MPF.ExecutionContexts/Data/UInt32Input.cs
index f78187fb..202d45ae 100644
--- a/MPF.ExecutionContexts/Data/UInt32Input.cs
+++ b/MPF.ExecutionContexts/Data/UInt32Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : uint.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : uint.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : uint.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,11 +138,15 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out uint? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : uint.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
diff --git a/MPF.ExecutionContexts/Data/UInt64Input.cs b/MPF.ExecutionContexts/Data/UInt64Input.cs
index ffa116a5..6ba60b65 100644
--- a/MPF.ExecutionContexts/Data/UInt64Input.cs
+++ b/MPF.ExecutionContexts/Data/UInt64Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : ulong.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : ulong.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : ulong.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out ulong? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : ulong.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///
diff --git a/MPF.ExecutionContexts/Data/UInt8Input.cs b/MPF.ExecutionContexts/Data/UInt8Input.cs
index e920919d..16170706 100644
--- a/MPF.ExecutionContexts/Data/UInt8Input.cs
+++ b/MPF.ExecutionContexts/Data/UInt8Input.cs
@@ -95,6 +95,8 @@ namespace MPF.ExecutionContexts.Data
if (index + 1 >= parts.Length)
{
Value = _required ? null : byte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -103,11 +105,15 @@ namespace MPF.ExecutionContexts.Data
{
index++;
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : byte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -123,6 +129,8 @@ namespace MPF.ExecutionContexts.Data
if (string.IsNullOrEmpty(val))
{
Value = _required ? null : byte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
@@ -130,17 +138,21 @@ namespace MPF.ExecutionContexts.Data
if (ParseValue(val, out byte? value) && value != null)
{
Value = value;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return true;
}
// Return value based on required flag
Value = _required ? null : byte.MinValue;
+ Value = (MinValue != null && Value < MinValue) ? MinValue : Value;
+ Value = (MaxValue != null && Value > MaxValue) ? MaxValue : Value;
return !_required;
}
return false;
}
-
+
///
/// Parse a value from a string
///