Association.st
author claus
Mon, 04 Oct 1993 11:32:33 +0100
changeset 2 6526dde5f3ac
parent 1 a27a279701f8
child 3 24d81bf47225
permissions -rw-r--r--
2.7.2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1989-93 by Claus Gittinger
a27a279701f8 Initial revision
claus
parents:
diff changeset
     3
              All Rights Reserved
a27a279701f8 Initial revision
claus
parents:
diff changeset
     4
a27a279701f8 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
a27a279701f8 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
a27a279701f8 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
a27a279701f8 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
a27a279701f8 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
a27a279701f8 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    11
"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    12
a27a279701f8 Initial revision
claus
parents:
diff changeset
    13
Object subclass:#Association
a27a279701f8 Initial revision
claus
parents:
diff changeset
    14
       instanceVariableNames:'key value'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    15
       classVariableNames:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    16
       poolDictionaries:''
a27a279701f8 Initial revision
claus
parents:
diff changeset
    17
       category:'Collections-Support'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    18
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    19
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
Association comment:'
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
a27a279701f8 Initial revision
claus
parents:
diff changeset
    22
COPYRIGHT (c) 1989-93 by Claus Gittinger
a27a279701f8 Initial revision
claus
parents:
diff changeset
    23
              All Rights Reserved
a27a279701f8 Initial revision
claus
parents:
diff changeset
    24
a27a279701f8 Initial revision
claus
parents:
diff changeset
    25
Associations are a key-value pair; they are the elements of Dictionaries -
a27a279701f8 Initial revision
claus
parents:
diff changeset
    26
storing value under the key. By itself, an Association is not very
a27a279701f8 Initial revision
claus
parents:
diff changeset
    27
useful.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    28
a27a279701f8 Initial revision
claus
parents:
diff changeset
    29
Instance variables:
a27a279701f8 Initial revision
claus
parents:
diff changeset
    30
a27a279701f8 Initial revision
claus
parents:
diff changeset
    31
key             <Object>        the key
a27a279701f8 Initial revision
claus
parents:
diff changeset
    32
value           <Object>        the value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    33
a27a279701f8 Initial revision
claus
parents:
diff changeset
    34
%W% %E%
a27a279701f8 Initial revision
claus
parents:
diff changeset
    35
'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    36
a27a279701f8 Initial revision
claus
parents:
diff changeset
    37
!Association class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    38
a27a279701f8 Initial revision
claus
parents:
diff changeset
    39
key:aKey
a27a279701f8 Initial revision
claus
parents:
diff changeset
    40
    "return a new Association."
a27a279701f8 Initial revision
claus
parents:
diff changeset
    41
a27a279701f8 Initial revision
claus
parents:
diff changeset
    42
    ^ self basicNew key:aKey
a27a279701f8 Initial revision
claus
parents:
diff changeset
    43
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    44
a27a279701f8 Initial revision
claus
parents:
diff changeset
    45
key:aKey value:aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    46
    "return a new Association"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    47
a27a279701f8 Initial revision
claus
parents:
diff changeset
    48
    ^ self basicNew key:aKey value:aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    49
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    50
a27a279701f8 Initial revision
claus
parents:
diff changeset
    51
!Association methodsFor:'accessing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    52
a27a279701f8 Initial revision
claus
parents:
diff changeset
    53
key
a27a279701f8 Initial revision
claus
parents:
diff changeset
    54
    "return the key of the association"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    55
a27a279701f8 Initial revision
claus
parents:
diff changeset
    56
    ^ key
a27a279701f8 Initial revision
claus
parents:
diff changeset
    57
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    58
a27a279701f8 Initial revision
claus
parents:
diff changeset
    59
key:anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    60
    "set the key of the receiver to be anObject.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    61
     Return the receiver"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    62
a27a279701f8 Initial revision
claus
parents:
diff changeset
    63
    key := anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    64
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    65
a27a279701f8 Initial revision
claus
parents:
diff changeset
    66
value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    67
    "return the value of the association"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    68
a27a279701f8 Initial revision
claus
parents:
diff changeset
    69
    ^ value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    70
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    71
a27a279701f8 Initial revision
claus
parents:
diff changeset
    72
value:anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    73
    "set the value of the receiver to be anObject.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    74
     Return the receiver"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    75
a27a279701f8 Initial revision
claus
parents:
diff changeset
    76
    value := anObject
a27a279701f8 Initial revision
claus
parents:
diff changeset
    77
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    78
a27a279701f8 Initial revision
claus
parents:
diff changeset
    79
key:aKey value:aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    80
    "set both the key and value of the receiver.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
     Return the receiver"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    82
a27a279701f8 Initial revision
claus
parents:
diff changeset
    83
    key := aKey.
a27a279701f8 Initial revision
claus
parents:
diff changeset
    84
    value := aValue
a27a279701f8 Initial revision
claus
parents:
diff changeset
    85
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    86
a27a279701f8 Initial revision
claus
parents:
diff changeset
    87
!Association methodsFor:'comparing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    88
a27a279701f8 Initial revision
claus
parents:
diff changeset
    89
= anAssociation
a27a279701f8 Initial revision
claus
parents:
diff changeset
    90
    (anAssociation isKindOf:Association) ifTrue:[
a27a279701f8 Initial revision
claus
parents:
diff changeset
    91
        (anAssociation key = key) ifTrue:[
a27a279701f8 Initial revision
claus
parents:
diff changeset
    92
            ^ anAssociation value = value
a27a279701f8 Initial revision
claus
parents:
diff changeset
    93
        ]
a27a279701f8 Initial revision
claus
parents:
diff changeset
    94
    ].
a27a279701f8 Initial revision
claus
parents:
diff changeset
    95
    ^ false
a27a279701f8 Initial revision
claus
parents:
diff changeset
    96
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
    97
a27a279701f8 Initial revision
claus
parents:
diff changeset
    98
!Association methodsFor:'printing & storing'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    99
a27a279701f8 Initial revision
claus
parents:
diff changeset
   100
printString
a27a279701f8 Initial revision
claus
parents:
diff changeset
   101
    "return a string containing a printable representation
a27a279701f8 Initial revision
claus
parents:
diff changeset
   102
     of the receiver"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   103
a27a279701f8 Initial revision
claus
parents:
diff changeset
   104
    ^ key printString , '->' , value printString
a27a279701f8 Initial revision
claus
parents:
diff changeset
   105
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   106
a27a279701f8 Initial revision
claus
parents:
diff changeset
   107
displayString
a27a279701f8 Initial revision
claus
parents:
diff changeset
   108
    "return a string containing a printable representation
a27a279701f8 Initial revision
claus
parents:
diff changeset
   109
     of the receiver for displaying"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   110
a27a279701f8 Initial revision
claus
parents:
diff changeset
   111
    ^ key displayString , '->' , value displayString
a27a279701f8 Initial revision
claus
parents:
diff changeset
   112
! !