Message.st
author Stefan Vogel <sv@exept.de>
Wed, 22 Sep 2004 16:42:22 +0200
changeset 8586 a38e882affa5
parent 8579 da7c9101e7a4
child 8687 d6e6e2c0c27c
permissions -rw-r--r--
take care of time-wrap in #millisecondsToRun:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
     1
"
5
67342904af11 *** empty log message ***
claus
parents: 3
diff changeset
     2
 COPYRIGHT (c) 1988 by Claus Gittinger
362
claus
parents: 159
diff changeset
     3
	      All Rights Reserved
1
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
5591
08ada63daf2a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
    13
"{ Package: 'stx:libbasic' }"
08ada63daf2a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
    14
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    15
Object subclass:#Message
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    16
	instanceVariableNames:'selector args'
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    17
	classVariableNames:''
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    18
	poolDictionaries:''
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    19
	category:'Kernel-Methods'
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    20
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    21
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    22
!Message class methodsFor:'documentation'!
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    23
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    24
copyright
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    25
"
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    26
 COPYRIGHT (c) 1988 by Claus Gittinger
362
claus
parents: 159
diff changeset
    27
	      All Rights Reserved
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    28
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    29
 This software is furnished under a license and may be used
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    30
 only in accordance with the terms of that license and with the
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    32
 be provided or otherwise made available to, or used by, any
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    33
 other person.  No title to or ownership of the software is
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    34
 hereby transferred.
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    35
"
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    36
!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    37
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    38
documentation
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    39
"
1268
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    40
    Instances of Message represent a message being sent.
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    41
    During normal execution, message objects are NEVER used -
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    42
    instead, argument passing is done more performant via the stack
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    43
    or in registers (depends on how your C compiler passes arguments).
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    44
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    45
    However, messageObjects ARE created, when a message send fails 
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    46
    (i.e. some message is not understood).
1268
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    47
    In this case, the selector and arguments of the failing messare
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    48
    are squashed into a new instance of Message, and a #doesNotUnderstand: 
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    49
    message is sent to the original receiver, passing the message object
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    50
    as argument.
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    51
1268
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    52
    Typically, #doesNotUnderstand: is not redefined in the receivers class,
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    53
    therefore Object>>doesNotUnderstand: gets evaluated.
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    54
    There, a debugger is opened and the thread is suspended.
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    55
    However, it is possible to redefine this method, which
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    56
    allows for re-evaluation of the failed send (after some cleanup),
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    57
    to upload some code or to simply ignore the error.
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
    58
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
    59
    As an example of its use, see the implementation of the Autoload-class,
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
    60
    or how ScrollableView forwards unknown messages to its slave-view.
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
    61
1268
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    62
    Elegance hint: actually, Object>>doesNotUnderstand: raises an exception
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    63
    which can be handled - in most situations, providing an exception handler 
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    64
    instead of redefining #doesNotUnderstand is the better way to do things.
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    65
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    66
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
    67
    Notice:
1268
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    68
    Since the layout of Message-objects is known by the runtime system
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    69
    (it has to create those objects in case of a failure)
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    70
    it is not allowed to change the definition of this class.
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    71
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    72
    [See also:]
38b3714d9eaf commentary
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
    73
        Signal  Exception  MessageSend
1293
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1268
diff changeset
    74
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1268
diff changeset
    75
    [author:]
02fb05148c98 documentation
Claus Gittinger <cg@exept.de>
parents: 1268
diff changeset
    76
        Claus Gittinger
88
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    77
"
81dacba7a63a *** empty log message ***
claus
parents: 85
diff changeset
    78
! !
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    79
a27a279701f8 Initial revision
claus
parents:
diff changeset
    80
!Message class methodsFor:'instance creation'!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    81
a27a279701f8 Initial revision
claus
parents:
diff changeset
    82
selector:aSymbol
a27a279701f8 Initial revision
claus
parents:
diff changeset
    83
    "return a new message object for a send without arguments"
a27a279701f8 Initial revision
claus
parents:
diff changeset
    84
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
    85
    ^ self basicNew setSelector:aSymbol arguments:nil
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
    86
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
    87
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    88
selector:aSymbol argument:anArg
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    89
    "return a new message object for a send with one argument"
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    90
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    91
    ^ self basicNew setSelector:aSymbol arguments:(Array with:anArg)
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    92
!
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
    93
5751
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    94
selector:aSymbol argument:arg1 argument:arg2
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    95
    "return a new message object for a send with two arguments"
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    96
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    97
    ^ self basicNew setSelector:aSymbol arguments:(Array with:arg1 with:arg2)
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    98
!
ceba525a9c2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 5591
diff changeset
    99
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   100
selector:aSymbol arguments:argArray
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   101
    "return a new message object for a send with many arguments"
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   102
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   103
    ^ self basicNew setSelector:aSymbol arguments:argArray
8323
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   104
! !
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   105
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   106
!Message class methodsFor:'obsolete'!
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   107
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   108
selector:aSymbol with:anArg
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   109
    "return a new message object for a send with one argument.
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   110
     OBSOLETE: use #selector:argument: for ST-80 compatibility."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   111
8323
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   112
    <resource:#obsolete>
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   113
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   114
    ^ self basicNew setSelector:aSymbol arguments:(Array with:anArg)
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   115
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   116
a27a279701f8 Initial revision
claus
parents:
diff changeset
   117
selector:aSymbol with:arg1 with:arg2
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   118
    "return a new message object for a send with two arguments.
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   119
     OBSOLETE: use #selector:arguments: for ST-80 compatibility."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   120
8323
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   121
    <resource:#obsolete>
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   122
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   123
    ^ self basicNew setSelector:aSymbol arguments:(Array with:arg1 with:arg2)
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   124
!
a27a279701f8 Initial revision
claus
parents:
diff changeset
   125
a27a279701f8 Initial revision
claus
parents:
diff changeset
   126
selector:aSymbol withAll:argArray
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   127
    "return a new message object for a send with many arguments.
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   128
     OBSOLETE: use #selector:arguments: for ST-80 compatibilty."
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   129
8323
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   130
    <resource:#obsolete>
9efd1beceb1f MArk obsolete messages
Stefan Vogel <sv@exept.de>
parents: 7257
diff changeset
   131
159
514c749165c3 *** empty log message ***
claus
parents: 152
diff changeset
   132
    ^ self basicNew setSelector:aSymbol arguments:argArray
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   133
! !
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   134
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   135
!Message class methodsFor:'queries'!
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   136
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   137
isBuiltInClass
1264
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   138
    "return true if this class is known by the run-time-system.
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   139
     Here, true is returned for myself, false for subclasses."
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   140
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   141
    ^ self == Message
1264
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   142
8d916aa63bce commentary
Claus Gittinger <cg@exept.de>
parents: 1183
diff changeset
   143
    "Modified: 23.4.1996 / 15:59:30 / cg"
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   144
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   145
8439
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   146
!Message methodsFor:'Compatibility-Dolphin'!
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   147
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   148
value:aReceiver
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   149
    "evaluate myself for receiver.
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   150
     Same as #sendTo: - compatibility with Dolphin"
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   151
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   152
    ^ aReceiver perform:selector withArguments:args
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   153
! !
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   154
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   155
!Message methodsFor:'Compatibility-GNU'!
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   156
8489
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   157
reinvokeFor:aReceiver
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   158
    "send the selector with argument to a receiver.
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   159
     Same as sendTo: - for GNU-ST compatibility."
8439
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   160
8489
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   161
    ^ self sendTo:aReceiver
8439
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   162
! !
46c0b9613466 Dolphin compatibility: #value:
Stefan Vogel <sv@exept.de>
parents: 8323
diff changeset
   163
8579
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   164
!Message methodsFor:'Compatibility-Squeak'!
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   165
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   166
argument
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   167
    "return the 1st argument of the message"
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   168
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   169
    args size == 1 ifFalse:[
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   170
        self error:'Not a 1-arg message'
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   171
    ].
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   172
    ^ args at:1
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   173
! !
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   174
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   175
!Message methodsFor:'accessing'!
10
claus
parents: 5
diff changeset
   176
6253
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   177
arg1
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   178
    "return the first argument of the message"
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   179
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   180
    ^ args at:1
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   181
!
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   182
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   183
arguments
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   184
    "return the arguments of the message"
85
claus
parents: 56
diff changeset
   185
6062
c8b8b9d382f1 always return a colelction from #arguments.
Claus Gittinger <cg@exept.de>
parents: 5751
diff changeset
   186
    ^ args ? #()
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   187
!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   188
6253
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   189
numArgs
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   190
    "return the number of arguments of the message"
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   191
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   192
    ^ args size
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   193
!
15f294576641 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6062
diff changeset
   194
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   195
selector
a27a279701f8 Initial revision
claus
parents:
diff changeset
   196
    "return the selector of the message"
a27a279701f8 Initial revision
claus
parents:
diff changeset
   197
a27a279701f8 Initial revision
claus
parents:
diff changeset
   198
    ^ selector
a27a279701f8 Initial revision
claus
parents:
diff changeset
   199
! !
a27a279701f8 Initial revision
claus
parents:
diff changeset
   200
93
e31220cb391f *** empty log message ***
claus
parents: 88
diff changeset
   201
!Message methodsFor:'printing & storing'!
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   202
56
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   203
displayString
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   204
    "return a string for display in inspectors etc."
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   205
5591
08ada63daf2a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4392
diff changeset
   206
    ^ self class name , '(' , selector printString , ')'
1833
9762af784d22 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   207
9762af784d22 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1293
diff changeset
   208
    "Modified: 28.10.1996 / 17:04:29 / cg"
56
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   209
!
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   210
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   211
printOn:aStream
4392
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   212
    "append a user printed representation of the receiver to aStream.
26fb48f04e1b comment
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   213
     The format is suitable for a human - not meant to be read back."
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   214
56
be0ed17e6f85 *** empty log message ***
claus
parents: 10
diff changeset
   215
    selector printOn:aStream
1
a27a279701f8 Initial revision
claus
parents:
diff changeset
   216
! !
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   217
7257
b9f0fb923c72 method category rename
Claus Gittinger <cg@exept.de>
parents: 6933
diff changeset
   218
!Message methodsFor:'private-accessing'!
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   219
6933
998dc32a3f6d + setSelector
penk
parents: 6253
diff changeset
   220
setSelector:aSymbol
998dc32a3f6d + setSelector
penk
parents: 6253
diff changeset
   221
    selector := aSymbol.
998dc32a3f6d + setSelector
penk
parents: 6253
diff changeset
   222
!
998dc32a3f6d + setSelector
penk
parents: 6253
diff changeset
   223
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   224
setSelector:aSymbol arguments:argArray
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   225
    "set selector and arguments of the receiver"
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   226
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   227
    selector := aSymbol.
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   228
    args := argArray
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   229
! !
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   230
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   231
!Message methodsFor:'sending'!
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   232
8489
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   233
sendTo:aReceiver
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   234
    "send the selector with argument to aReceiver"
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   235
8489
d555f1a72960 category change
Stefan Vogel <sv@exept.de>
parents: 8439
diff changeset
   236
    ^ aReceiver perform:selector withArguments:args
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   237
! !
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   238
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   239
!Message class methodsFor:'documentation'!
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   240
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   241
version
8579
da7c9101e7a4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8489
diff changeset
   242
    ^ '$Header: /cvs/stx/stx/libbasic/Message.st,v 1.31 2004-09-22 09:55:56 cg Exp $'
1183
e3d58d115e53 subclasses of fixed classes are still possible
Claus Gittinger <cg@exept.de>
parents: 530
diff changeset
   243
! !