Fixed builders

This commit is contained in:
Thorsten Sommer 2026-01-05 16:38:52 +01:00
parent b781a5ab07
commit 6bb6baced9
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
6 changed files with 45 additions and 42 deletions

View File

@ -1,10 +1,15 @@
namespace AIStudio.Tools.MIME; namespace AIStudio.Tools.MIME;
public class ApplicationBuilder : Builder, ISubtype public class ApplicationBuilder : ISubtype
{ {
private ApplicationBuilder() private readonly BaseType baseType;
private ApplicationBuilder(BaseType baseType)
{ {
this.baseType = baseType;
} }
public static ApplicationBuilder Create() => new(BaseType.APPLICATION);
private ApplicationSubtype subtype; private ApplicationSubtype subtype;

View File

@ -1,11 +1,16 @@
namespace AIStudio.Tools.MIME; namespace AIStudio.Tools.MIME;
public class AudioBuilder : Builder, ISubtype public class AudioBuilder : ISubtype
{ {
private AudioBuilder() private readonly BaseType baseType;
private AudioBuilder(BaseType baseType)
{ {
this.baseType = baseType;
} }
public static AudioBuilder Create() => new(BaseType.AUDIO);
private AudioSubtype subtype; private AudioSubtype subtype;
public AudioBuilder UseSubtype(string subType) public AudioBuilder UseSubtype(string subType)

View File

@ -2,11 +2,9 @@ namespace AIStudio.Tools.MIME;
public class Builder public class Builder
{ {
protected Builder() private Builder()
{ {
} }
protected BaseType baseType;
public static Builder Create() => new(); public static Builder Create() => new();
@ -48,33 +46,13 @@ public class Builder
} }
} }
public ApplicationBuilder UseApplication() public ApplicationBuilder UseApplication() => ApplicationBuilder.Create();
{
this.baseType = BaseType.APPLICATION; public TextBuilder UseText() => TextBuilder.Create();
return (ApplicationBuilder)this;
} public AudioBuilder UseAudio() => AudioBuilder.Create();
public TextBuilder UseText() public ImageBuilder UseImage() => ImageBuilder.Create();
{
this.baseType = BaseType.TEXT; public VideoBuilder UseVideo() => VideoBuilder.Create();
return (TextBuilder)this;
}
public AudioBuilder UseAudio()
{
this.baseType = BaseType.AUDIO;
return (AudioBuilder)this;
}
public ImageBuilder UseImage()
{
this.baseType = BaseType.IMAGE;
return (ImageBuilder)this;
}
public VideoBuilder UseVideo()
{
this.baseType = BaseType.VIDEO;
return (VideoBuilder)this;
}
} }

View File

@ -1,11 +1,16 @@
namespace AIStudio.Tools.MIME; namespace AIStudio.Tools.MIME;
public class ImageBuilder : Builder, ISubtype public class ImageBuilder : ISubtype
{ {
private ImageBuilder() private readonly BaseType baseType;
private ImageBuilder(BaseType baseType)
{ {
this.baseType = baseType;
} }
public static ImageBuilder Create() => new(BaseType.IMAGE);
private ImageSubtype subtype; private ImageSubtype subtype;
public ImageBuilder UseSubtype(string subType) public ImageBuilder UseSubtype(string subType)

View File

@ -1,10 +1,15 @@
namespace AIStudio.Tools.MIME; namespace AIStudio.Tools.MIME;
public class TextBuilder : Builder, ISubtype public class TextBuilder : ISubtype
{ {
private TextBuilder() private readonly BaseType baseType;
private TextBuilder(BaseType baseType)
{ {
this.baseType = baseType;
} }
public static TextBuilder Create() => new(BaseType.TEXT);
private TextSubtype subtype; private TextSubtype subtype;

View File

@ -1,10 +1,15 @@
namespace AIStudio.Tools.MIME; namespace AIStudio.Tools.MIME;
public class VideoBuilder : Builder, ISubtype public class VideoBuilder : ISubtype
{ {
private VideoBuilder() private readonly BaseType baseType;
private VideoBuilder(BaseType baseType)
{ {
this.baseType = baseType;
} }
public static VideoBuilder Create() => new(BaseType.VIDEO);
private VideoSubtype subtype; private VideoSubtype subtype;