You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							229 lines
						
					
					
						
							4.1 KiB
						
					
					
				
			
		
		
	
	
							229 lines
						
					
					
						
							4.1 KiB
						
					
					
				using System.Collections; | 
						|
using System.Collections.Generic; | 
						|
using System.Xml.Serialization; | 
						|
using KGIS.Plugin.LayerProperty.Enum; | 
						|
using KGIS.Plugin.LayerProperty.Interface; | 
						|
using KGIS.Plugin.LayerProperty.Utils; | 
						|
 | 
						|
namespace KGIS.Plugin.LayerProperty.Model | 
						|
{ | 
						|
	public abstract class AbstractTable | 
						|
	{ | 
						|
		public class Collections : IEnumerable<AbstractField>, IEnumerable | 
						|
		{ | 
						|
			private IList<AbstractField> mList; | 
						|
			public int Count | 
						|
			{ | 
						|
				get | 
						|
				{ | 
						|
					return this.mList.Count; | 
						|
				} | 
						|
			} | 
						|
			public AbstractField this[int index] | 
						|
			{ | 
						|
				get | 
						|
				{ | 
						|
					return this.mList[index]; | 
						|
				} | 
						|
			} | 
						|
			public AbstractField this[long fieldid] | 
						|
			{ | 
						|
				get | 
						|
				{ | 
						|
					foreach (AbstractField current in this.mList) | 
						|
					{ | 
						|
						if (current.ID == fieldid) | 
						|
						{ | 
						|
							return current; | 
						|
						} | 
						|
					} | 
						|
					return null; | 
						|
				} | 
						|
			} | 
						|
			public AbstractField this[string name] | 
						|
			{ | 
						|
				get | 
						|
				{ | 
						|
					foreach (AbstractField current in this.mList) | 
						|
					{ | 
						|
						if (current.Name == name) | 
						|
						{ | 
						|
							return current; | 
						|
						} | 
						|
					} | 
						|
					return null; | 
						|
				} | 
						|
			} | 
						|
			public Collections() | 
						|
			{ | 
						|
				this.mList = new List<AbstractField>(); | 
						|
			} | 
						|
			public IEnumerator<AbstractField> GetEnumerator() | 
						|
			{ | 
						|
				foreach (AbstractField current in this.mList) | 
						|
				{ | 
						|
					yield return current; | 
						|
				} | 
						|
				yield break; | 
						|
			} | 
						|
			IEnumerator IEnumerable.GetEnumerator() | 
						|
			{ | 
						|
				foreach (AbstractField current in this.mList) | 
						|
				{ | 
						|
					yield return current; | 
						|
				} | 
						|
				yield break; | 
						|
			} | 
						|
			public void Add(AbstractField item) | 
						|
			{ | 
						|
				this.mList.Add(item); | 
						|
			} | 
						|
			internal bool Remove(AbstractField item) | 
						|
			{ | 
						|
				return this.mList.Remove(item); | 
						|
			} | 
						|
			internal void Clear() | 
						|
			{ | 
						|
				this.mList.Clear(); | 
						|
			} | 
						|
			internal bool Exist(AbstractField item) | 
						|
			{ | 
						|
				return this[item.Name] != null; | 
						|
			} | 
						|
		} | 
						|
		private AbstractTable.Collections collections; | 
						|
		private DataSourceGeneric dataSource; | 
						|
		private long id; | 
						|
		private string name; | 
						|
		private string aliasName; | 
						|
		private string category; | 
						|
		private string description; | 
						|
		[XmlIgnore] | 
						|
		public AbstractTable.Collections Collection | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.collections; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.collections = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlIgnore] | 
						|
		public DataSourceGeneric DataSource | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.dataSource; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.dataSource = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlElement] | 
						|
		public long ID | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.id; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.id = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlAttribute] | 
						|
		public string Name | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.name; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.name = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlAttribute] | 
						|
		public string AliasName | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.aliasName; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.aliasName = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlAttribute] | 
						|
		public string Category | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.category; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.category = value; | 
						|
			} | 
						|
		} | 
						|
		[XmlAttribute] | 
						|
		public string Description | 
						|
		{ | 
						|
			get | 
						|
			{ | 
						|
				return this.description; | 
						|
			} | 
						|
			set | 
						|
			{ | 
						|
				this.description = value; | 
						|
			} | 
						|
		} | 
						|
		protected void Clear() | 
						|
		{ | 
						|
			this.collections.Clear(); | 
						|
		} | 
						|
		protected bool Remove(AbstractField field) | 
						|
		{ | 
						|
			return this.collections.Remove(field); | 
						|
		} | 
						|
		protected bool Add(AbstractField field) | 
						|
		{ | 
						|
			if (!this.Exist(field)) | 
						|
			{ | 
						|
				this.collections.Add(field); | 
						|
				return true; | 
						|
			} | 
						|
			return false; | 
						|
		} | 
						|
		protected bool Exist(AbstractField field) | 
						|
		{ | 
						|
			return this.collections.Exist(field); | 
						|
		} | 
						|
		protected AbstractTable() | 
						|
		{ | 
						|
			this.collections = new AbstractTable.Collections(); | 
						|
		} | 
						|
		public AbstractTable(DataSourceGeneric dataSource, string name, string aliasName, string category, string description) | 
						|
		{ | 
						|
			this.collections = new AbstractTable.Collections(); | 
						|
			this.DataSource = dataSource; | 
						|
			this.name = name; | 
						|
			this.aliasName = aliasName; | 
						|
			this.category = category; | 
						|
			this.description = description; | 
						|
		} | 
						|
		public abstract AbstractField Create(string name, string aliasName, DBDataType dbType, IKgisDictionary dictionary, FieldKeyType fieldKeyType, string defaultValue, int length, string description); | 
						|
		public override string ToString() | 
						|
		{ | 
						|
			if (this.aliasName == null || this.aliasName.Equals("")) | 
						|
			{ | 
						|
				return this.name; | 
						|
			} | 
						|
			return this.aliasName; | 
						|
		} | 
						|
	} | 
						|
}
 | 
						|
 |