ProxyMethodBlockInvocationNode.st
branchdirectory_structure_refactoring
changeset 1818 2e5ed72e7dfd
parent 1356 0dd28400803e
child 1864 60a8dc26c8c6
equal deleted inserted replaced
1817:b86c40afbf1f 1818:2e5ed72e7dfd
       
     1 "
       
     2  Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
       
     3                          SWING Research Group, Czech Technical University 
       
     4                          in Prague
       
     5 
       
     6  Permission is hereby granted, free of charge, to any person
       
     7  obtaining a copy of this software and associated documentation
       
     8  files (the 'Software'), to deal in the Software without
       
     9  restriction, including without limitation the rights to use,
       
    10  copy, modify, merge, publish, distribute, sublicense, and/or sell
       
    11  copies of the Software, and to permit persons to whom the
       
    12  Software is furnished to do so, subject to the following
       
    13  conditions:
       
    14 
       
    15  The above copyright notice and this permission notice shall be
       
    16  included in all copies or substantial portions of the Software.
       
    17 
       
    18  THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
       
    19  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
       
    20  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
       
    21  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
       
    22  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
       
    23  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
       
    24  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
       
    25  OTHER DEALINGS IN THE SOFTWARE.
       
    26 "
       
    27 "{ Package: 'stx:libjava' }"
       
    28 
       
    29 ProxyMethodInvocationNode subclass:#ProxyMethodBlockInvocationNode
       
    30 	instanceVariableNames:'block'
       
    31 	classVariableNames:''
       
    32 	poolDictionaries:''
       
    33 	category:'System-Compiler-Interop'
       
    34 !
       
    35 
       
    36 !ProxyMethodBlockInvocationNode class methodsFor:'documentation'!
       
    37 
       
    38 copyright
       
    39 "
       
    40  Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
       
    41                          SWING Research Group, Czech Technical University 
       
    42                          in Prague
       
    43 
       
    44  Permission is hereby granted, free of charge, to any person
       
    45  obtaining a copy of this software and associated documentation
       
    46  files (the 'Software'), to deal in the Software without
       
    47  restriction, including without limitation the rights to use,
       
    48  copy, modify, merge, publish, distribute, sublicense, and/or sell
       
    49  copies of the Software, and to permit persons to whom the
       
    50  Software is furnished to do so, subject to the following
       
    51  conditions:
       
    52 
       
    53  The above copyright notice and this permission notice shall be
       
    54  included in all copies or substantial portions of the Software.
       
    55 
       
    56  THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
       
    57  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
       
    58  OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
       
    59  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
       
    60  HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
       
    61  WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
       
    62  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
       
    63  OTHER DEALINGS IN THE SOFTWARE.
       
    64 
       
    65 "
       
    66 ! !
       
    67 
       
    68 !ProxyMethodBlockInvocationNode methodsFor:'accessing'!
       
    69 
       
    70 block
       
    71     ^ block
       
    72 !
       
    73 
       
    74 block:something
       
    75     block := something.
       
    76 ! !
       
    77 
       
    78 !ProxyMethodBlockInvocationNode methodsFor:'evaluating'!
       
    79 
       
    80 evaluateWithReceiver: receiver arguments: arguments
       
    81 
       
    82     ^block valueWithOptionalArgument: receiver and: arguments
       
    83 
       
    84     "Modified: / 06-12-2011 / 23:39:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
    85 ! !
       
    86 
       
    87 !ProxyMethodBlockInvocationNode methodsFor:'generating'!
       
    88 
       
    89 generate: compiler
       
    90     "Generate a ParseNode that evaluate myself. Used for
       
    91      byte-compiling the proxies"
       
    92 
       
    93     ^MessageNode
       
    94         receiver: (ConstantNode value: block)
       
    95         selector: #valueWithOptionalArgument:and:  
       
    96         arg1: (SelfNode new)
       
    97         arg2: compiler argsArray
       
    98 
       
    99     "Created: / 22-12-2011 / 09:26:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
       
   100 ! !
       
   101 
       
   102 !ProxyMethodBlockInvocationNode methodsFor:'testing'!
       
   103 
       
   104 isProxyMethodBlockInvocationNode
       
   105     ^ true
       
   106 ! !
       
   107 
       
   108 !ProxyMethodBlockInvocationNode class methodsFor:'documentation'!
       
   109 
       
   110 version_SVN
       
   111     ^ '$Id$'
       
   112 ! !