Skip to content

Commit b99b91d

Browse files
committed
#363 - Continue applying shims to RDFModelUtilities
1 parent d98923c commit b99b91d

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

RDFSharp.Test/Model/RDFModelUtilitiesTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,14 +94,14 @@ public void ShouldNotMatchRegexU4(string input)
9494
[DataTestMethod]
9595
[DataRow("09AFaf09")]
9696
public void ShouldMatchHexBinary(string input)
97-
=> Assert.IsTrue(RDFModelUtilities.hexBinary.Value.IsMatch(input));
97+
=> Assert.IsTrue(RDFModelShims.HexBinaryRegexShim.IsMatch(input));
9898

9999
[DataTestMethod]
100100
[DataRow("0")]
101101
[DataRow("09A")]
102102
[DataRow("000P")]
103103
public void ShouldNotMatchHexBinary(string input)
104-
=> Assert.IsFalse(RDFModelUtilities.hexBinary.Value.IsMatch(input));
104+
=> Assert.IsFalse(RDFModelShims.HexBinaryRegexShim.IsMatch(input));
105105

106106
[DataTestMethod]
107107
[DataRow("http://xmlns.com/foaf/0.1/")]

RDFSharp/Model/RDFModelShims.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ internal static partial class RDFModelShims
3030
internal const string TurtleLongLiteralCharsRegexMask = "[\n\r\t\"]";
3131
internal const string EightByteUnicodeRegexMask = @"\\U([0-9A-Fa-f]{8})";
3232
internal const string FourByteUnicodeRegexMask = @"\\u([0-9A-Fa-f]{4})";
33+
internal const string HexBinaryRegexMask = "^([0-9a-fA-F]{2})*$";
3334
#endregion
3435

3536
#region Ctors
@@ -41,43 +42,40 @@ static RDFModelShims()
4142
TurtleLongLiteralCharsRegexShim = TurtleLongLiteralCharsRegex();
4243
EightByteUnicodeRegexShim = EightByteUnicodeRegex();
4344
FourByteUnicodeRegexShim = FourByteUnicodeRegex();
45+
HexBinaryRegexShim = HexBinaryRegex();
4446
#else
4547
PrefixRegexShim = new Regex(PrefixRegexMask, RegexOptions.Compiled);
4648
LanguageTagRegexShim = new Regex("^" + LanguageTagRegexMask + "$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
4749
TurtleLongLiteralCharsRegexShim = new Regex(TurtleLongLiteralCharsRegexMask, RegexOptions.Compiled);
4850
EightByteUnicodeRegexShim = new Regex(EightByteUnicodeRegexMask, RegexOptions.Compiled);
4951
FourByteUnicodeRegexShim = new Regex(FourByteUnicodeRegexMask, RegexOptions.Compiled);
52+
HexBinaryRegexShim = new Regex(HexBinaryRegexMask, RegexOptions.Compiled);
5053
#endif
5154
}
5255
#endregion
5356

5457
#region Properties
5558
internal static Regex PrefixRegexShim { get; }
56-
5759
internal static Regex LanguageTagRegexShim { get; }
58-
5960
internal static Regex TurtleLongLiteralCharsRegexShim { get; }
60-
6161
internal static Regex EightByteUnicodeRegexShim { get; }
62-
6362
internal static Regex FourByteUnicodeRegexShim { get; }
63+
internal static Regex HexBinaryRegexShim { get; }
6464
#endregion
6565

6666
#if NET8_0_OR_GREATER
6767
[GeneratedRegex(PrefixRegexMask)]
6868
private static partial Regex PrefixRegex();
69-
7069
[GeneratedRegex("^" + LanguageTagRegexMask + "$", RegexOptions.IgnoreCase)]
7170
private static partial Regex LanguageTagRegex();
72-
7371
[GeneratedRegex(TurtleLongLiteralCharsRegexMask)]
7472
private static partial Regex TurtleLongLiteralCharsRegex();
75-
7673
[GeneratedRegex(EightByteUnicodeRegexMask)]
7774
private static partial Regex EightByteUnicodeRegex();
78-
7975
[GeneratedRegex(FourByteUnicodeRegexMask)]
8076
private static partial Regex FourByteUnicodeRegex();
77+
[GeneratedRegex(HexBinaryRegexMask)]
78+
private static partial Regex HexBinaryRegex();
8179
#endif
8280
}
8381
}

RDFSharp/Model/RDFModelUtilities.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ public static long CreateHash(string input)
5656
/// </summary>
5757
internal static readonly UTF8Encoding UTF8_NoBOM = new UTF8Encoding(false);
5858

59-
/// <summary>
60-
/// Regex to catch xsd:hexBinary typed literals
61-
/// </summary>
62-
internal static readonly Lazy<Regex> hexBinary = new Lazy<Regex>(() => new Regex("^([0-9a-fA-F]{2})*$", RegexOptions.Compiled));
6359
/// <summary>
6460
/// Regex to catch owl:rational typed literals
6561
/// </summary>
@@ -668,7 +664,7 @@ internal static (bool,string) ValidateTypedLiteral(string literalValue, RDFModel
668664
catch { return (false, literalValue); }
669665

670666
case RDFModelEnums.RDFDatatypes.XSD_HEXBINARY:
671-
return (hexBinary.Value.Match(literalValue).Success, literalValue);
667+
return (RDFModelShims.HexBinaryRegexShim.Match(literalValue).Success, literalValue);
672668
#endregion
673669

674670
#region GEOGRAPHIC CATEGORY

0 commit comments

Comments
 (0)