using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Io.Github.Kerwinxu.LibShapes.Core.Print
{
public abstract class AbstractPrintItemFactory : IPrintItemFactory
{
///
/// 用这个来保存PrintItem
///
protected Dictionary dict_printItem = new Dictionary();
public PrintItem GetPrintItem(string name)
{
if (dict_printItem.ContainsKey(name))
{
return dict_printItem[name];
}
return null;
//throw new NotImplementedException();
}
///
/// 删除,受到保护的,外部不能随便调用的。
///
///
protected void deletePrintItem(string name)
{
dict_printItem.Remove(name);
//throw new NotImplementedException();
}
///
/// 外部不能随便的增加
///
///
///
protected void registerPrintItem(string name, PrintItem printItem)
{
if (! dict_printItem.ContainsKey(name))
{
// 没有才添加
dict_printItem[name] = printItem;
}
//throw new NotImplementedException();
}
public string registerPrintItem(PrintItem printItem)
{
string id = getNoRepeatId(); // 先取得一个不重复的id
registerPrintItem(id, printItem); // 注册
return id; // 返回这个id
}
public abstract string getNoRepeatId();
}
}