From d86c9db51326845627a3c7196891698d5bab2bb5 Mon Sep 17 00:00:00 2001 From: Chris Bell Date: Wed, 16 Jul 2025 13:07:12 -0500 Subject: [PATCH] Getting files structured --- SessionZero.SzfLib/File/ISzfFile.cs | 6 ++++++ SessionZero.SzfLib/File/SzfFile.cs | 8 ++++++++ SessionZero.SzfLib/Generator/ISzfGenerator.cs | 6 ++++++ SessionZero.SzfLib/Generator/SzfGenerator.cs | 6 ++++++ SessionZero.SzfLib/Objects/ISzfCharacter.cs | 6 ++++++ .../Objects/ISzfCharacterTemplate.cs | 6 ++++++ SessionZero.SzfLib/Objects/ISzfDataset.cs | 6 ++++++ SessionZero.SzfLib/Objects/ISzfObject.cs | 2 +- SessionZero.SzfLib/Objects/SzfCharacter.cs | 7 +++++++ .../Objects/SzfCharacterTemplate.cs | 7 +++++++ SessionZero.SzfLib/Objects/SzfDataset.cs | 7 +++++++ SessionZero.SzfLib/Objects/SzfObject.cs | 4 ++-- SessionZero.SzfLib/Parser/ISzfParser.cs | 10 ++++++++++ SessionZero.SzfLib/Parser/SzfParser.cs | 17 +++++++++++++++++ SessionZero.SzfLib/SessionZero.SzfLib.csproj | 6 ------ SessionZero.SzfLib/SzfObjectAttribute.cs | 2 +- 16 files changed, 96 insertions(+), 10 deletions(-) create mode 100644 SessionZero.SzfLib/File/ISzfFile.cs create mode 100644 SessionZero.SzfLib/File/SzfFile.cs create mode 100644 SessionZero.SzfLib/Generator/ISzfGenerator.cs create mode 100644 SessionZero.SzfLib/Generator/SzfGenerator.cs create mode 100644 SessionZero.SzfLib/Objects/ISzfCharacter.cs create mode 100644 SessionZero.SzfLib/Objects/ISzfCharacterTemplate.cs create mode 100644 SessionZero.SzfLib/Objects/ISzfDataset.cs create mode 100644 SessionZero.SzfLib/Objects/SzfCharacter.cs create mode 100644 SessionZero.SzfLib/Objects/SzfCharacterTemplate.cs create mode 100644 SessionZero.SzfLib/Objects/SzfDataset.cs create mode 100644 SessionZero.SzfLib/Parser/ISzfParser.cs create mode 100644 SessionZero.SzfLib/Parser/SzfParser.cs diff --git a/SessionZero.SzfLib/File/ISzfFile.cs b/SessionZero.SzfLib/File/ISzfFile.cs new file mode 100644 index 0000000..41cb952 --- /dev/null +++ b/SessionZero.SzfLib/File/ISzfFile.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.File; + +public interface ISzfFile +{ + public string? Content { get; set; } +} \ No newline at end of file diff --git a/SessionZero.SzfLib/File/SzfFile.cs b/SessionZero.SzfLib/File/SzfFile.cs new file mode 100644 index 0000000..7cc6a3b --- /dev/null +++ b/SessionZero.SzfLib/File/SzfFile.cs @@ -0,0 +1,8 @@ +namespace SessionZero.SzfLib.File; + +public class SzfFile : ISzfFile +{ + public string? SzfType { get; set; } + public string? SchemaVersion { get; set; } + public string? Content { get; set; } +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Generator/ISzfGenerator.cs b/SessionZero.SzfLib/Generator/ISzfGenerator.cs new file mode 100644 index 0000000..44c5576 --- /dev/null +++ b/SessionZero.SzfLib/Generator/ISzfGenerator.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.Generator; + +public interface ISzfGenerator +{ + +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Generator/SzfGenerator.cs b/SessionZero.SzfLib/Generator/SzfGenerator.cs new file mode 100644 index 0000000..eb0c723 --- /dev/null +++ b/SessionZero.SzfLib/Generator/SzfGenerator.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.Generator; + +public class SzfGenerator : ISzfGenerator +{ + +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/ISzfCharacter.cs b/SessionZero.SzfLib/Objects/ISzfCharacter.cs new file mode 100644 index 0000000..4be53fe --- /dev/null +++ b/SessionZero.SzfLib/Objects/ISzfCharacter.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.Objects; + +public interface ISzfCharacter +{ + +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/ISzfCharacterTemplate.cs b/SessionZero.SzfLib/Objects/ISzfCharacterTemplate.cs new file mode 100644 index 0000000..d48b69d --- /dev/null +++ b/SessionZero.SzfLib/Objects/ISzfCharacterTemplate.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.Objects; + +public interface ISzfCharacterTemplate +{ + +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/ISzfDataset.cs b/SessionZero.SzfLib/Objects/ISzfDataset.cs new file mode 100644 index 0000000..64f4758 --- /dev/null +++ b/SessionZero.SzfLib/Objects/ISzfDataset.cs @@ -0,0 +1,6 @@ +namespace SessionZero.SzfLib.Objects; + +public interface ISzfDataset +{ + +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/ISzfObject.cs b/SessionZero.SzfLib/Objects/ISzfObject.cs index 8ed9db5..e4fbf4a 100644 --- a/SessionZero.SzfLib/Objects/ISzfObject.cs +++ b/SessionZero.SzfLib/Objects/ISzfObject.cs @@ -2,5 +2,5 @@ namespace SessionZero.SzfLib.Objects; public interface ISzfObject { - + public string SzfType { get; set; } } \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/SzfCharacter.cs b/SessionZero.SzfLib/Objects/SzfCharacter.cs new file mode 100644 index 0000000..3203507 --- /dev/null +++ b/SessionZero.SzfLib/Objects/SzfCharacter.cs @@ -0,0 +1,7 @@ +namespace SessionZero.SzfLib.Objects; + +[SzfObject("character")] +public class SzfCharacter : SzfObject, ISzfCharacter +{ + public override string SzfType { get; set; } = "character"; +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/SzfCharacterTemplate.cs b/SessionZero.SzfLib/Objects/SzfCharacterTemplate.cs new file mode 100644 index 0000000..2f14878 --- /dev/null +++ b/SessionZero.SzfLib/Objects/SzfCharacterTemplate.cs @@ -0,0 +1,7 @@ +namespace SessionZero.SzfLib.Objects; + +[SzfObject("character_template")] +public class SzfCharacterTemplate : SzfObject, ISzfCharacterTemplate +{ + public override string SzfType { get; set; } = "character_template"; +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/SzfDataset.cs b/SessionZero.SzfLib/Objects/SzfDataset.cs new file mode 100644 index 0000000..414c9a5 --- /dev/null +++ b/SessionZero.SzfLib/Objects/SzfDataset.cs @@ -0,0 +1,7 @@ +namespace SessionZero.SzfLib.Objects; + +[SzfObject("dataset")] +public class SzfDataset : SzfObject, ISzfDataset +{ + public override string SzfType { get; set; } = "dataset"; +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Objects/SzfObject.cs b/SessionZero.SzfLib/Objects/SzfObject.cs index 0e0071d..f7e8231 100644 --- a/SessionZero.SzfLib/Objects/SzfObject.cs +++ b/SessionZero.SzfLib/Objects/SzfObject.cs @@ -1,6 +1,6 @@ namespace SessionZero.SzfLib.Objects; -public class SzfObject : ISzfObject +public abstract class SzfObject : ISzfObject { - + public abstract string SzfType { get; set; } } \ No newline at end of file diff --git a/SessionZero.SzfLib/Parser/ISzfParser.cs b/SessionZero.SzfLib/Parser/ISzfParser.cs new file mode 100644 index 0000000..f737f15 --- /dev/null +++ b/SessionZero.SzfLib/Parser/ISzfParser.cs @@ -0,0 +1,10 @@ +using SessionZero.SzfLib.File; +using SessionZero.SzfLib.Objects; + +namespace SessionZero.SzfLib.Parser; + +public interface ISzfParser +{ + public ISzfFile Parse(string szfContent); + public ISzfObject Parse(ISzfFile file); +} \ No newline at end of file diff --git a/SessionZero.SzfLib/Parser/SzfParser.cs b/SessionZero.SzfLib/Parser/SzfParser.cs new file mode 100644 index 0000000..a0bf989 --- /dev/null +++ b/SessionZero.SzfLib/Parser/SzfParser.cs @@ -0,0 +1,17 @@ +using SessionZero.SzfLib.File; +using SessionZero.SzfLib.Objects; + +namespace SessionZero.SzfLib.Parser; + +public class SzfParser : ISzfParser +{ + public ISzfFile Parse(string szfContent) + { + throw new NotImplementedException(); + } + + public ISzfObject Parse(ISzfFile file) + { + throw new NotImplementedException(); + } +} \ No newline at end of file diff --git a/SessionZero.SzfLib/SessionZero.SzfLib.csproj b/SessionZero.SzfLib/SessionZero.SzfLib.csproj index 059b212..17b910f 100644 --- a/SessionZero.SzfLib/SessionZero.SzfLib.csproj +++ b/SessionZero.SzfLib/SessionZero.SzfLib.csproj @@ -6,10 +6,4 @@ enable - - - - - - diff --git a/SessionZero.SzfLib/SzfObjectAttribute.cs b/SessionZero.SzfLib/SzfObjectAttribute.cs index 0569238..f949394 100644 --- a/SessionZero.SzfLib/SzfObjectAttribute.cs +++ b/SessionZero.SzfLib/SzfObjectAttribute.cs @@ -7,7 +7,7 @@ public class SzfObjectAttribute : Attribute /// The unique identifier for the SzfObject type (e.g., "dataset", "character_template", "character"). /// This is used in the `!tpye` header of the SZF file to identify the type of SzfObject. /// - public required string TypeIdentifier { get; set; } + public string TypeIdentifier { get; set; } public SzfObjectAttribute(string typeIdentifier) {