Skip to content

Commit 53c0f88

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

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

RDFSharp/Model/RDFModelShims.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ internal static partial class RDFModelShims
3131
internal const string EightByteUnicodeRegexMask = @"\\U([0-9A-Fa-f]{8})";
3232
internal const string FourByteUnicodeRegexMask = @"\\u([0-9A-Fa-f]{4})";
3333
internal const string HexBinaryRegexMask = "^([0-9a-fA-F]{2})*$";
34+
internal const string OwlRationalRegexMask = "^(0|(-)?([1-9])+([0-9])*)(/([1-9])+([0-9])*)?$";
3435
#endregion
3536

3637
#region Ctors
@@ -43,13 +44,15 @@ static RDFModelShims()
4344
EightByteUnicodeRegexShim = EightByteUnicodeRegex();
4445
FourByteUnicodeRegexShim = FourByteUnicodeRegex();
4546
HexBinaryRegexShim = HexBinaryRegex();
47+
OwlRationalRegexShim = OwlRationalRegex();
4648
#else
4749
PrefixRegexShim = new Regex(PrefixRegexMask, RegexOptions.Compiled);
4850
LanguageTagRegexShim = new Regex("^" + LanguageTagRegexMask + "$", RegexOptions.Compiled | RegexOptions.IgnoreCase);
4951
TurtleLongLiteralCharsRegexShim = new Regex(TurtleLongLiteralCharsRegexMask, RegexOptions.Compiled);
5052
EightByteUnicodeRegexShim = new Regex(EightByteUnicodeRegexMask, RegexOptions.Compiled);
5153
FourByteUnicodeRegexShim = new Regex(FourByteUnicodeRegexMask, RegexOptions.Compiled);
5254
HexBinaryRegexShim = new Regex(HexBinaryRegexMask, RegexOptions.Compiled);
55+
OwlRationalRegexShim = new Regex(OwlRationalRegexMask, RegexOptions.Compiled);
5356
#endif
5457
}
5558
#endregion
@@ -61,6 +64,7 @@ static RDFModelShims()
6164
internal static Regex EightByteUnicodeRegexShim { get; }
6265
internal static Regex FourByteUnicodeRegexShim { get; }
6366
internal static Regex HexBinaryRegexShim { get; }
67+
internal static Regex OwlRationalRegexShim { get; }
6468
#endregion
6569

6670
#if NET8_0_OR_GREATER
@@ -76,6 +80,8 @@ static RDFModelShims()
7680
private static partial Regex FourByteUnicodeRegex();
7781
[GeneratedRegex(HexBinaryRegexMask)]
7882
private static partial Regex HexBinaryRegex();
83+
[GeneratedRegex(OwlRationalRegexMask)]
84+
private static partial Regex OwlRationalRegex();
7985
#endif
8086
}
8187
}

RDFSharp/Model/RDFModelUtilities.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,16 +51,12 @@ public static long CreateHash(string input)
5151
#endregion
5252

5353
#region Strings
54+
5455
/// <summary>
5556
/// UTF8 encoding which does not emit BOM (for better OS interoperability)
5657
/// </summary>
5758
internal static readonly UTF8Encoding UTF8_NoBOM = new UTF8Encoding(false);
5859

59-
/// <summary>
60-
/// Regex to catch owl:rational typed literals
61-
/// </summary>
62-
internal static readonly Lazy<Regex> owlRational = new Lazy<Regex>(() => new Regex("^(0|(-)?([1-9])+([0-9])*)(/([1-9])+([0-9])*)?$", RegexOptions.Compiled));
63-
6460
/// <summary>
6561
/// Alternative representations of boolean True
6662
/// </summary>
@@ -835,7 +831,7 @@ internal static (bool,string) ValidateTypedLiteral(string literalValue, RDFModel
835831
: (false, literalValue);
836832

837833
case RDFModelEnums.RDFDatatypes.OWL_RATIONAL:
838-
bool isValidOwlRational = owlRational.Value.Match(literalValue).Success;
834+
bool isValidOwlRational = RDFModelShims.OwlRationalRegexShim.Match(literalValue).Success;
839835
return (isValidOwlRational, literalValue);
840836

841837
case RDFModelEnums.RDFDatatypes.XSD_DOUBLE:

0 commit comments

Comments
 (0)