CadParamPluging/Cad/Drawers/TemplateDrawingRegistry.cs

48 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
using CadParamPluging.Cad.Drawers; // Add this just in case, though they seem to be in .Cad
namespace CadParamPluging.Cad
{
public static class TemplateDrawingRegistry
{
private static readonly Dictionary<string, ITemplateDrawingGenerator> Generators =
new Dictionary<string, ITemplateDrawingGenerator>(StringComparer.OrdinalIgnoreCase);
static TemplateDrawingRegistry()
{
Register(new RingMachinedRollingGenerator());
Register(new RingRawRollingGenerator());
Register(new BlockRawFreeForgeRoundHeadGenerator());
Register(new RingRawFreeForgeNonCenterPunchGenerator());
Register(new BlockRawFreeForgeNoRoundHeadGenerator());
Register(new RingRawFreeForgeCenterPunchGenerator());
Register(new ShaftRawFreeForgeRoundShaftGenerator());
Register(new ShaftRawFreeForgeSquareShaftGenerator());
Register(new DiskRawFreeForgeGenerator());
}
public static bool TryResolve(string templateKey, out ITemplateDrawingGenerator generator)
{
generator = null;
if (string.IsNullOrWhiteSpace(templateKey))
{
return false;
}
return Generators.TryGetValue(templateKey, out generator);
}
private static void Register(ITemplateDrawingGenerator generator)
{
if (generator == null || string.IsNullOrWhiteSpace(generator.TemplateKey))
{
return;
}
Generators[generator.TemplateKey] = generator;
}
}
}