summaryrefslogtreecommitdiff
path: root/slips/src/app/Marina/Domain/Range.cs
blob: 4b76b2552b428f8fa092c209426078d4eb08a001 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using Marina.Domain.Interfaces;

namespace Marina.Domain {
	public class Range< T > : IRange< T > where T : IComparable< T > {
		private readonly T start;
		private readonly T end;

		public Range( T start, T end ) {
			if ( start.CompareTo( end ) <= 0 ) {
				this.start = start;
				this.end = end;
			}
			else {
				this.start = end;
				this.end = start;
			}
		}

		public T Start() {
			return start;
		}

		public T End() {
			return end;
		}

		public bool Contains( T value ) {
			return value.CompareTo( start ) >= 0 && value.CompareTo( end ) <= 0;
		}
	}
}