diff -r aa2498ef6470 -r a27a279701f8 Magnitude.st --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Magnitude.st Fri Jul 16 11:39:45 1993 +0200 @@ -0,0 +1,102 @@ +" + COPYRIGHT (c) 1988-93 by Claus Gittinger + All Rights Reserved + + This software is furnished under a license and may be used + only in accordance with the terms of that license and with the + inclusion of the above copyright notice. This software may not + be provided or otherwise made available to, or used by, any + other person. No title to or ownership of the software is + hereby transferred. +" + +Object subclass:#Magnitude + instanceVariableNames:'' + classVariableNames:'' + poolDictionaries:'' + category:'Magnitude-General' +! + +Magnitude comment:' + +COPYRIGHT (c) 1988-93 by Claus Gittinger + All Rights Reserved + +This is an abstract class definining common methods for +Objects which can be compared by a kind of greater realation. + +%W% %E% +'! + +!Magnitude methodsFor:'comparing'! + +> aMagnitude + "Compare the receiver with the argument and return true if the + receiver is greater than the argument. Otherwise return false." + + ^ self subclassResponsibility +! + += aMagnitude + "Compare the receiver with the argument and return true if the + receiver is equal to the argument. Otherwise return false." + + ^ self subclassResponsibility +! + +<= aMagnitude + "Compare the receiver with the argument and return true if the + receiver is less than or equal to the argument. Otherwise return false." + + ^ (self > aMagnitude) not +! + +< aMagnitude + "Compare the receiver with the argument and return true if the + receiver is less than the argument. Otherwise return false." + + ^ (aMagnitude > self) +! + +>= aMagnitude + "Compare the receiver with the argument and return true if the + receiver is greater than or equal to the argument. + Otherwise return false." + + ^ (aMagnitude > self) not +! ! + +!Magnitude methodsFor:'testing'! + +between:min and:max + "return whether the receiver is less than or equal to the argument max + and greater than or equal to the argument min." + + (self < min) ifTrue:[^ false]. + (self > max) ifTrue:[^ false]. + ^ true +! + +in:anInterval + "return whether the receiver is within the interval bounds" + + (self < anInterval start) ifTrue:[^ false]. + (self > anInterval stop) ifTrue:[^ false]. + ^ true +! ! + +!Magnitude methodsFor:'misc'! + +min:aMagnitude + "return the receiver or the argument, whichever has lesser magnitude" + + (self < aMagnitude) ifTrue:[^ self]. + ^ aMagnitude +! + +max:aMagnitude + "return the receiver or the argument, whichever has greater magnitude" + + (self > aMagnitude) ifTrue:[^ self]. + ^ aMagnitude +! !