ProtoObject.st
author Stefan Vogel <sv@exept.de>
Wed, 01 Sep 2004 16:45:23 +0200
changeset 8508 68cd95545196
parent 8500 10d47cede03c
child 8728 d70396dc4e96
permissions -rw-r--r--
Allow to proceed with any stream from an #openError handler
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic' }"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
nil subclass:#ProtoObject
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:''
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
6912
d2e78827a065 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6911
diff changeset
     7
	category:'Kernel-Objects'
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!ProtoObject class methodsFor:'documentation'!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
documentation
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
    a minimum object without much protocol;
7659
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    15
    Provides the minimum required to prevent inspectors from crashing,
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    16
    and debuggers from blocking.
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    17
    (i.e. instead of inheriting from nil, better inherit from this).
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    18
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
    Named after a similar class found in Dolphin-Smalltalk.
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
    [author:]
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
        Claus Gittinger (not much authoring, though)
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
! !
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
!ProtoObject methodsFor:'error handling'!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
doesNotUnderstand:aMessage
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
    "this message is sent by the runtime system (VM) when
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
     a message is not understood by some object (i.e. there
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
     is no method for that selector). The original message has
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
     been packed into aMessage (i.e. the receiver, selector and
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
     any arguments) and the original receiver is then sent the
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
     #doesNotUnderstand: message.
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
     Here, we raise another signal which usually enters the debugger.
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
     You can of course redefine #doesNotUnderstand: in your classes
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
     to implement message delegation, 
8500
10d47cede03c Speed up MessageNotUnderstood exception sending by layz computation
Stefan Vogel <sv@exept.de>
parents: 7661
diff changeset
    38
     or handle the MessageNotUnderstood exception gracefully."
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    <context: #return>
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
8500
10d47cede03c Speed up MessageNotUnderstood exception sending by layz computation
Stefan Vogel <sv@exept.de>
parents: 7661
diff changeset
    42
    ^ MessageNotUnderstood raiseRequestWith:aMessage
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
! !
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
!ProtoObject methodsFor:'queries'!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
class
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "return the receivers class"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
%{  /* NOCONTEXT */
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    RETURN ( __Class(self) );
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
%}
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
*** WARNING
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
***
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
*** this method has been automatically created,
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
*** since all nil-subclasses should respond to some minimum required
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
*** protocol.
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
***
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
*** Inspection and/or debugging of instances may not be possible,
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
*** if you remove/change this method. 
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
"
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!ProtoObject methodsFor:'testing'!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
isBehavior
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    ^ false
7661
71d2cac1b959 some tests aded to avoid trouble in debugger
Claus Gittinger <cg@exept.de>
parents: 7659
diff changeset
    71
!
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
7661
71d2cac1b959 some tests aded to avoid trouble in debugger
Claus Gittinger <cg@exept.de>
parents: 7659
diff changeset
    73
isBlock
71d2cac1b959 some tests aded to avoid trouble in debugger
Claus Gittinger <cg@exept.de>
parents: 7659
diff changeset
    74
    ^ false
7659
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    75
!
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    76
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    77
isException
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    78
    ^ false
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    79
!
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    80
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    81
isExceptionHandler
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    82
    ^ false
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    83
!
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    84
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    85
isJavaObject
4def16a2e6e1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 6912
diff changeset
    86
    ^ false
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
! !
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!ProtoObject class methodsFor:'documentation'!
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
version
8500
10d47cede03c Speed up MessageNotUnderstood exception sending by layz computation
Stefan Vogel <sv@exept.de>
parents: 7661
diff changeset
    92
    ^ '$Header: /cvs/stx/stx/libbasic/ProtoObject.st,v 1.8 2004-08-30 18:00:25 stefan Exp $'
6844
75e52e680723 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
! !