LookupKey.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18120 e3a375d5f6a8
child 19478 1f5aa87f6170
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     1
"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1994 by Claus Gittinger
379
5b5a130ccd09 revision added
claus
parents: 157
diff changeset
     3
	      All Rights Reserved
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     4
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
1e3f01c45262 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    11
"
14119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
    12
"{ Package: 'stx:libbasic' }"
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    13
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    14
Magnitude subclass:#LookupKey
1290
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    15
	instanceVariableNames:'key'
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    16
	classVariableNames:''
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    17
	poolDictionaries:''
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    18
	category:'Collections-Support'
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    19
!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    20
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    21
!LookupKey class methodsFor:'documentation'!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    22
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    23
copyright
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    24
"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    25
 COPYRIGHT (c) 1994 by Claus Gittinger
379
5b5a130ccd09 revision added
claus
parents: 157
diff changeset
    26
	      All Rights Reserved
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    27
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    28
 This software is furnished under a license and may be used
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    29
 only in accordance with the terms of that license and with the
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    31
 be provided or otherwise made available to, or used by, any
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    32
 other person.  No title to or ownership of the software is
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    33
 hereby transferred.
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    34
"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    35
!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    36
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    37
documentation
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    38
"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    39
    LookupKey has been extracted from Association for ST-80 compatibility.
1761
8a42b8a58547 commentary
Claus Gittinger <cg@exept.de>
parents: 1290
diff changeset
    40
    This class is currently not used directly.
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    41
1290
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    42
    [Instance variables:]
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    43
1290
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    44
        key             <Object>        the key
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    45
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    46
    [author:]
15ba3221b89b documentation
Claus Gittinger <cg@exept.de>
parents: 629
diff changeset
    47
        Claus Gittinger
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    48
"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    49
! !
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    50
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    51
!LookupKey class methodsFor:'instance creation'!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    52
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    53
key:aKey
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    54
    "return a new instance."
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    55
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    56
    ^ self basicNew key:aKey
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    57
! !
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    58
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    59
!LookupKey methodsFor:'accessing'!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    60
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    61
key
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    62
    "return the key of the receiver"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    63
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    64
    ^ key
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    65
!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    66
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    67
key:anObject
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    68
    "set the key of the receiver to be anObject.
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    69
     Return the receiver"
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    70
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    71
    key := anObject
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    72
! !
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    73
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    74
!LookupKey methodsFor:'comparing'!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    75
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    76
< aKey
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    77
    "return true, if the receivers KEY is less 
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    78
     than the arguments key. The argument must be a kind of lookupKey"
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    79
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    80
    ^ key < aKey key
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    81
!
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    82
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    83
= aLookupKey
15077
53dce8734409 class: LookupKey
Stefan Vogel <sv@exept.de>
parents: 14119
diff changeset
    84
    "return true if the receivers key equals the arguments key.
53dce8734409 class: LookupKey
Stefan Vogel <sv@exept.de>
parents: 14119
diff changeset
    85
     The argument must be a kind of lookupKey."
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    86
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    87
    ^ (self species == aLookupKey species) and:[key = aLookupKey key]
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    88
!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    89
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    90
> aKey
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    91
    "return true, if the receivers KEY is greater 
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    92
     than the arguments key. The argument must be a kind of lookupKey"
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    93
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    94
    ^ key > aKey key
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    95
!
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    96
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    97
hash
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    98
    "return an integer useful for hashing on the receiver;
1e3f01c45262 Initial revision
claus
parents:
diff changeset
    99
     redefined since = is redefined here."
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   100
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   101
    ^ key hash
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   102
! !
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   103
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   104
!LookupKey methodsFor:'printing & storing'!
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   105
14119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   106
displayOn:aGCOrStream
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   107
    "Compatibility
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   108
     append a printed desription on some stream (Dolphin,  Squeak)
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   109
     OR:
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   110
     display the receiver in a graphicsContext at 0@0 (ST80).
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   111
     This method allows for any object to be displayed in some view
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   112
     (although the fallBack is to display its printString ...)"
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   113
14119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   114
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   115
    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
16747
52fd1ec02e85 displayOn: cleanup
Claus Gittinger <cg@exept.de>
parents: 15077
diff changeset
   116
    (aGCOrStream isStream) ifFalse:[
14119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   117
        ^ super displayOn:aGCOrStream
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   118
    ].
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   120
    aGCOrStream 
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   121
        nextPutAll:self className; 
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   122
        nextPut:$(.
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   123
    key displayOn:aGCOrStream.
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   124
    aGCOrStream nextPut:$)
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   125
!
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   126
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   127
printOn:aStream
4392
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
   128
    "append a user printed representation of the receiver to aStream.
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 1761
diff changeset
   129
     The format is suitable for a human - not meant to be read back."
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   130
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   131
    key printOn:aStream.
157
1e3f01c45262 Initial revision
claus
parents:
diff changeset
   132
! !
607
a9a526c51233 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   133
14119
26e51066f338 added: #displayOn: (instead of #displaySting)
Stefan Vogel <sv@exept.de>
parents: 4392
diff changeset
   134
629
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   135
!LookupKey class methodsFor:'documentation'!
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   136
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   137
version
16747
52fd1ec02e85 displayOn: cleanup
Claus Gittinger <cg@exept.de>
parents: 15077
diff changeset
   138
    ^ '$Header: /cvs/stx/stx/libbasic/LookupKey.st,v 1.12 2014-07-10 12:24:01 cg Exp $'
629
2ceefe9b5a19 version at the end
Claus Gittinger <cg@exept.de>
parents: 607
diff changeset
   139
! !
15077
53dce8734409 class: LookupKey
Stefan Vogel <sv@exept.de>
parents: 14119
diff changeset
   140