experiments/StCounter.st
author Claus Gittinger <cg@exept.de>
Thu, 24 Nov 2011 12:54:24 +0100
changeset 2290 cd61fd0b66ac
parent 2152 1cbdfbcc685c
permissions -rw-r--r--
fixed: #version_SVN ($ to ยง)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     1
"{ Package: 'stx:libjava/experiments' }"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     2
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     3
Object subclass:#StCounter
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     4
	instanceVariableNames:'foo count javaObject'
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     5
	classVariableNames:''
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     6
	poolDictionaries:''
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     7
	category:'Languages-Java-Tests'
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     8
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     9
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    10
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    11
!StCounter class methodsFor:'instance creation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    12
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    13
new
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    14
    "return an initialized instance"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    15
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    16
    ^ self basicNew initialize.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    17
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    18
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    19
!StCounter class methodsFor:'accessing'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    20
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    21
javaObject
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    22
    ^ JavaObjectDictionary new reflectionOf: self name
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    23
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    24
    "Created: / 09-01-2011 / 21:02:37 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    25
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    26
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    27
!StCounter methodsFor:'accessing'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    28
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    29
count
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    30
    ^ count
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    31
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    32
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    33
inc
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    34
    count := count + 2.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    35
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    36
    "Created: / 09-01-2011 / 13:51:22 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    37
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    38
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    39
javaObject
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    40
    ^ self class javaObject.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    41
"/    javaObject ifNil: [
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    42
"/        javaObject:= Java classForName: 'Counter'.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    43
"/    ].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    44
"/    ^ javaObject.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    45
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    46
    "Created: / 09-01-2011 / 13:56:56 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    47
    "Modified: / 09-01-2011 / 21:02:18 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    48
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    49
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    50
!StCounter methodsFor:'error handling'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    51
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    52
doesNotUnderstand:aMessage 
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    53
    | method |
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    54
    aMessage selector = #'getCount()I' ifTrue:[ ^ self getCount.].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    55
    aMessage selector = #'incCount()V' ifTrue:[ ^ self incCount.].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    56
    method := JavaClass 
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    57
                lookupMethod:aMessage selector
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    58
                numArgs:aMessage arguments size
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    59
                in:self javaObject
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    60
                static:false.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    61
    ^ method 
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    62
        ifNil:[  super doesNotUnderstand:aMessage.]
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    63
        ifNotNil:[ method valueWithReceiver:self arguments:aMessage arguments.]
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    64
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    65
    "Created: / 09-01-2011 / 13:42:08 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    66
    "Modified: / 09-01-2011 / 15:54:04 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    67
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    68
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    69
!StCounter methodsFor:'initialization'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    70
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    71
initialize
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    72
    "Invoked when a new instance is created."
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    73
    foo := 123.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    74
    count := 0.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    75
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    76
    "/ super initialize.   -- commented since inherited method does nothing
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    77
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    78
    "Modified: / 09-01-2011 / 15:59:47 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    79
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    80
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    81
!StCounter methodsFor:'java protocol'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    82
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    83
getCount
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    84
    Transcript showCR: 'aaa'.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    85
    ^ count
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    86
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    87
    "Created: / 09-01-2011 / 12:59:04 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    88
    "Modified: / 09-01-2011 / 15:52:19 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    89
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    90
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    91
incCount
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    92
    count := count + 2.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    93
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    94
    "Created: / 09-01-2011 / 13:03:29 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    95
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    96
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    97
!StCounter methodsFor:'testing'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    98
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    99
isKindOf: aClass
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   100
    "This override is neccessary for ST <-> Java Object conversions"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   101
    (self javaObject includesBehavior: aClass) ifTrue:
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   102
    [
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   103
        ^ true.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   104
    ].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   105
    ^ super isKindOf: aClass.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   106
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   107
    "Created: / 09-01-2011 / 13:28:10 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   108
    "Modified: / 09-01-2011 / 21:22:41 / Jan Kurs <kurs.jan@post.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   109
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   110
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   111
!StCounter class methodsFor:'documentation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   112
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   113
version_SVN
2152
1cbdfbcc685c Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 749
diff changeset
   114
    ^ '$Id: StCounter.st,v 1.1 2011-08-18 19:06:54 vrany Exp $'
1cbdfbcc685c Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 749
diff changeset
   115
! !