⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domainobjects.cs

📁 NHibernate NET开发者所需的
💻 CS
字号:
using System;
using System.Collections.Generic;
using Iesi.Collections.Generic;

namespace NHibernate.Test.NHSpecificTest.NH1217
{
	public class DomainBase : IDomainBase
	{
		private Int32 _id;


		private Int32 _versionNumber;

		#region IDomainBase Members

		public virtual Int32 Id
		{
			get { return _id; }
			set { _id = value; }
		}


		public virtual Int32 VersionNumber
		{
			get { return _versionNumber; }
			set { _versionNumber = value; }
		}

		#endregion
	}


	public class Root : DomainBase, IRoot
	{
		private String _name;


		private IList<INode> _nodes;

		#region IRoot Members

		public virtual String Name
		{
			get { return _name; }
			set { _name = value; }
		}


		public virtual IList<INode> Nodes
		{
			get
			{
				if (_nodes == null) _nodes = new List<INode>();
				return _nodes;
			}
			set { _nodes = value; }
		}


		public virtual INode AddNode(string label)
		{
			INode result = new Node();
			result.Label = label;
			result.Root = this;
			Nodes.Add(result);

			return result;
		}

		public virtual IEdge AddLink(INode from, INode to, string label)
		{
			IEdge result = new Edge();
			result.FromNode = from;
			result.ToNode = to;
			result.Label = label;

			from.FromEdges.Add(result);
			to.ToEdges.Add(result);

			return result;
		}

		#endregion
	}

	public class Node : DomainBase, INode
	{
		private ISet<IEdge> _fromEdges;
		private String _label;
		private IRoot _root;
		private ISet<IEdge> _toEdges;

		#region INode Members

		public virtual IRoot Root
		{
			get { return _root; }
			set { _root = value; }
		}


		public virtual String Label
		{
			get { return _label; }
			set { _label = value; }
		}


		public virtual ISet<IEdge> FromEdges
		{
			get
			{
				if (_fromEdges == null) _fromEdges = new HashedSet<IEdge>();
				return _fromEdges;
			}
			set { _fromEdges = value; }
		}


		public virtual ISet<IEdge> ToEdges
		{
			get
			{
				if (_toEdges == null) _toEdges = new HashedSet<IEdge>();
				return _toEdges;
			}
			set { _toEdges = value; }
		}

		#endregion
	}


	public class Edge : DomainBase, IEdge
	{
		private INode _fromNode;
		private String _label;
		private INode _toNode;

		#region IEdge Members

		public virtual String Label
		{
			get { return _label; }
			set { _label = value; }
		}

		public virtual INode FromNode
		{
			get { return _fromNode; }
			set { _fromNode = value; }
		}


		public virtual INode ToNode
		{
			get { return _toNode; }
			set { _toNode = value; }
		}

		#endregion
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -