diff --git a/SFI.Tests/GraphTests.cs b/SFI.Tests/GraphTests.cs index c705ab25..75bcd9f5 100644 --- a/SFI.Tests/GraphTests.cs +++ b/SFI.Tests/GraphTests.cs @@ -189,6 +189,11 @@ public async override ValueTask AddDefault() { mediaTypeAnalyzer.AddClasses = false; } + + if(Analyzers.OfType().FirstOrDefault() is ExtensionObjectAnalyzer extensionObjectAnalyzer) + { + extensionObjectAnalyzer.AddClasses = false; + } } } diff --git a/SFI/Analyzers/ExtensionObjectAnalyzer.cs b/SFI/Analyzers/ExtensionObjectAnalyzer.cs index 76186396..d967de8b 100644 --- a/SFI/Analyzers/ExtensionObjectAnalyzer.cs +++ b/SFI/Analyzers/ExtensionObjectAnalyzer.cs @@ -10,6 +10,11 @@ namespace IS4.SFI.Analyzers /// public class ExtensionObjectAnalyzer : EntityAnalyzer { + /// + /// Whether to add class information to the created node. + /// + public bool AddClasses { get; set; } = true; + /// public ExtensionObjectAnalyzer() { @@ -25,6 +30,10 @@ public async override ValueTask Analyze(ExtensionObject extensio node = context.NodeFactory.Create(Vocabularies.Uris, Uri.EscapeDataString(ext)); } node = InitNewNode(node, context); + if(AddClasses) + { + node.SetClass(Classes.Extension); + } return new(node); } } diff --git a/SFI/Vocabulary/Classes.cs b/SFI/Vocabulary/Classes.cs index a48412a9..a56facf7 100644 --- a/SFI/Vocabulary/Classes.cs +++ b/SFI/Vocabulary/Classes.cs @@ -236,6 +236,12 @@ public static class Classes [Uri(Uriv, "Mimetype-Parametrized")] public static readonly ClassUri MediaTypeParametrized; + /// + /// :Suffix. + /// + [Uri(Uriv, "Suffix")] + public static readonly ClassUri Extension; + static Classes() { typeof(Classes).InitializeUris();