home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / RB3641.ZIP / EX2 / COMPTO.MTH < prev    next >
Text File  |  1991-12-16  |  1KB  |  30 lines

  1.  
  2.  
  3.  
  4. !ToDoItem methods !
  5.    
  6. compareTo: aToDoItem using: aSortKey
  7.  
  8.     "Returns true if the receiver ToDoItem is less than or equal
  9.      to the argument ToDoItem, using the SortKey as the element
  10.      to be compared.
  11.  
  12.      This method was originally four IF statements. After working
  13.      with Smalltalk for a while longer it was obvious that this
  14.      case statement-like processing wasn't necessary in OO, if we
  15.      could work out how to do it otherwise.
  16.  
  17.      What happens here is that aSortKey (which has the value priority
  18.      or deadline etc, is converted into a symbol (unique occurance in
  19.      the system, like PM Atoms) which can then be used as the name of
  20.      a method. The perform: method executes the argument it is given
  21.      by sending it as a message to self (ie the item). So this one-liner
  22.      sets up the sort block as being a comparison between the two items'
  23.      values of one of their instance variables (like type or description).
  24.  
  25.      If aSortKey was equal to type then the expression would be
  26.  
  27.      ^self type <= aToDoItem type                                      "
  28.  
  29. ^(self perform: (aSortKey asSymbol)) <= (aToDoItem perform: (aSortKey asSymbol))! !
  30.