# HG changeset patch # User IBBoard # Date 1256068117 0 # Node ID c3b217a708f41d9a8809de49c6b80787761dc556 # Parent e98708559618bd07a0595e6a1a238e6605dedee2 Re #24: Add limits * Add an absolute limit that isn't affected by the number it is a limit against * Add hashcode and equals implementations diff -r e98708559618 -r c3b217a708f4 Limits/AbsoluteNumericLimit.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Limits/AbsoluteNumericLimit.cs Tue Oct 20 19:48:37 2009 +0000 @@ -0,0 +1,23 @@ +// This file (AbsoluteNumericLimit.cs) is a part of the IBBoard project and is copyright 2009 IBBoard +// +// The file and the library/program it is in are licensed under the GNU LGPL license, either version 3 of the License or (at your option) any later version. Please see COPYING.LGPL for more information and the full license. + +using System; + +namespace IBBoard.Limits +{ + /// + /// A limit of a specified number that does not vary with the number it is limited against. + /// + public class AbsoluteNumericLimit : AbstractLimit + { + public AbsoluteNumericLimit (int numericLimit) : base(numericLimit) + { + } + + public override int GetLimit (int size) + { + return (int)Limit; + } + } +} diff -r e98708559618 -r c3b217a708f4 Limits/AbstractLimit.cs --- a/Limits/AbstractLimit.cs Sun Oct 11 19:58:02 2009 +0000 +++ b/Limits/AbstractLimit.cs Tue Oct 20 19:48:37 2009 +0000 @@ -36,5 +36,25 @@ /// the limited number, as defined by the implementation of the limit /// public abstract int GetLimit(int size); + + public override int GetHashCode () + { + int hash = GetType().GetHashCode(); + hash+= Limit.GetHashCode(); + return hash; + } + + public override bool Equals (object obj) + { + bool equal = false; + + if (obj != null && GetType().Equals(obj.GetType())) + { + equal = (Limit == ((AbstractLimit)obj).Limit); + } + + return equal; + } + } }