Query.st
author Claus Gittinger <cg@exept.de>
Fri, 01 Mar 2002 16:05:14 +0100
changeset 6433 fd6c95ecb2b1
parent 6432 5a3c5155237e
child 8681 38aa963476a5
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6432
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2002 by eXept Software AG
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
"{ Package: 'stx:libbasic' }"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
Notification subclass:#Query
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	instanceVariableNames:''
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	classVariableNames:''
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	poolDictionaries:''
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	category:'Kernel-Exceptions'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
!
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
!Query class methodsFor:'documentation'!
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
copyright
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
 COPYRIGHT (c) 2002 by eXept Software AG
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
              All Rights Reserved
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
 This software is furnished under a license and may be used
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 only in accordance with the terms of that license and with the
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 be provided or otherwise made available to, or used by, any
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 other person.  No title to or ownership of the software is
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 hereby transferred.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
documentation
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
    Query is an abstract superclass for queries.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
    A query is an exception which by default proceeds if unhandled and returns
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    a default value.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
    As a class based reimplementation, it replaces and obsoletes the old 
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    QuerySignal instance based mechanism.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
    Note:
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
        Query does not add/refine any functionality from its superclass.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
        It exists for the more descriptive class name only.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
    [author:]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
        Claus Gittinger
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    [see also:]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
        Warning Signal QuerySignal
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
examples
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    Query answer:'hello'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
        Transcript showCR:(Query query)
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
    ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
                                                                        [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
  an up-query from a deeply nested operation to a higher level:
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
  the example below demonstrates that a Query is not an Error
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
  (i.e. the Error-handler does not interfere with Queries)
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    |zero|
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    zero := 0.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
    Query handle:[:ex |
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        Transcript showCR:'query'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        ex proceedWith:true
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    ] do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
        'nesting'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
        [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
            [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
                Error handle:[:ex |
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
                    Transcript showCR:'some error: ' , ex errorString.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
                    ex proceed
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
                ] do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
                    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
                        1 // zero.  'an error which is caught in the handler'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
                        (Query query) == true ifTrue:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
                            Transcript showCR:'query says: ok'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
                        ] ifFalse:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
                            Transcript showCR:'query says: no'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
                        ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
                    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
                ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
            ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
        ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
                                                                        [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
  for lazy typists, a more compact interface for query-answerign
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
  is also provided (which is also easier to read):
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    Query answer:true do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
        'nesting'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
        [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
            [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
                (Query query) == true ifTrue:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
                    Transcript showCR:'query says: ok'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
                ] ifFalse:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
                    Transcript showCR:'query says: no'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
                ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
            ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
        ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
                                                                        [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
  an up-query from a deeply nested operation, for which there
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
  is no handler:
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
  (notice, this would not work with normal signals, which would raise
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
   another unhandled exception-exception;
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
   also notice the == check #raise's return value being true,
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
   instead of a simple ifTrue; this handles a nil-value from
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
   the unhandled query)
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
    |zero|
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    zero := 0.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
        'nesting'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
        [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
            [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
                Error handle:[:ex |
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
                    Transcript showCR:'some error: ' , ex errorString.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
                    ex proceed
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
                ] do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
                    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
                        1 // zero.  'an error which is caught in the handler'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
                        (Query raise) == true ifTrue:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
                            Transcript showCR:'query says: ok'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
                        ] ifFalse:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
                            Transcript showCR:'query says: no'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
                        ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
                    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
                ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
            ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
        ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
                                                                         [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
  counter-example, just to show that things would not work this way
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
  with regular signals:
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    |signal|
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    signal := Signal new.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
    'nesting deeply'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
        [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
            [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
                [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
                    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
                        (signal raise) == true ifTrue:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
                            Transcript showCR:'query says: ok'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
                        ] ifFalse:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
                            Transcript showCR:'query says: no'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
                        ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
                    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
                ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
            ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
        ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
                                                                         [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
   except, by handling the unhandled exception
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
   (but we think, that querySignals are easier to use and
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
    better document the intent):
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
                                                                        [exBegin]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
    |signal|
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
    signal := Signal new.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    'nesting deeply'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
        [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
            [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
                [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
                    [
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
                        Signal noHandlerSignal handle:[:ex |
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
                            ex proceedWith:nil
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
                        ] do:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
                            (signal raise) == true ifTrue:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
                                Transcript showCR:'query says: ok'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
                            ] ifFalse:[
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
                                Transcript showCR:'query says: no'
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
                            ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
                        ]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
                    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
                ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
            ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
        ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    ] value
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
                                                                         [exEnd]
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
"
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
! !
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
!Query class methodsFor:'initialization'!
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
initialize
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    NotifierString := 'Query'.
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    "
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
     self initialize
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    "
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
! !
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
6433
fd6c95ecb2b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6432
diff changeset
   214
!Query class methodsFor:'documentation'!
fd6c95ecb2b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6432
diff changeset
   215
fd6c95ecb2b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6432
diff changeset
   216
version
fd6c95ecb2b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6432
diff changeset
   217
    ^ '$Header: /cvs/stx/stx/libbasic/Query.st,v 1.10 2002-03-01 15:05:14 cg Exp $'
fd6c95ecb2b1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6432
diff changeset
   218
! !
6432
5a3c5155237e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
Query initialize!