54 lines
1.1 KiB
C#
Executable File
54 lines
1.1 KiB
C#
Executable File
using System;
|
|
namespace UniversalEditor.ObjectModels.Database
|
|
{
|
|
public class DatabaseField : ICloneable
|
|
{
|
|
|
|
public class DatabaseFieldCollection
|
|
: System.Collections.ObjectModel.Collection<DatabaseField>
|
|
{
|
|
private System.Collections.Generic.Dictionary<string, DatabaseField> fieldsByName = new System.Collections.Generic.Dictionary<string, DatabaseField>();
|
|
public DatabaseField Add(string Name)
|
|
{
|
|
return Add(Name, String.Empty);
|
|
}
|
|
public DatabaseField Add(string Name, object Value)
|
|
{
|
|
DatabaseField df = new DatabaseField();
|
|
df.Name = Name;
|
|
df.Value = Value;
|
|
|
|
base.Add(df);
|
|
return df;
|
|
}
|
|
|
|
public DatabaseField this[string Name]
|
|
{
|
|
get
|
|
{
|
|
return fieldsByName[Name];
|
|
}
|
|
}
|
|
}
|
|
|
|
public string Name { get; set; } = String.Empty;
|
|
public object Value { get; set; } = null;
|
|
|
|
public object Clone()
|
|
{
|
|
DatabaseField clone = new DatabaseField();
|
|
clone.Name = (Name.Clone() as string);
|
|
if (Value is ICloneable)
|
|
{
|
|
clone.Value = (Value as ICloneable).Clone();
|
|
}
|
|
else
|
|
{
|
|
clone.Value = Value;
|
|
}
|
|
return clone;
|
|
}
|
|
}
|
|
}
|
|
|