examples/JavaExamples.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 19 Jan 2013 23:19:12 +0000
branchrefactoring-vmdata
changeset 1985 7c5a14d663ba
parent 1818 2e5ed72e7dfd
child 2069 75d40b7b986f
permissions -rw-r--r--
Temporary commit. JavaNativeMethod refactored to use new-style native methods. Java VM does not boot at this point.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     1
"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     3
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     5
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     8
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    14
 hereby transferred.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    15
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    18
     see the differences between this version and version stx:libjava
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    19
     as of 1.9.2010
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    20
"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava/examples' }"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    22
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    23
Object subclass:#JavaExamples
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:''
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    25
	classVariableNames:''
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    26
	poolDictionaries:''
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    27
	category:'Languages-Java-Examples'
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    28
!
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    29
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    30
!JavaExamples class methodsFor:'documentation'!
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    31
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    32
copyright
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    33
"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    34
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    35
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    36
 New code and modifications done at SWING Research Group [1]:
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    37
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    38
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    39
                            SWING Research Group, Czech Technical University in Prague
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    40
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    41
 This software is furnished under a license and may be used
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    42
 only in accordance with the terms of that license and with the
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    43
 inclusion of the above copyright notice.   This software may not
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    44
 be provided or otherwise made available to, or used by, any
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    45
 other person.  No title to or ownership of the software is
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    46
 hereby transferred.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    47
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    48
 [1] Code written at SWING Research Group contains a signature
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    49
     of one of the above copright owners. For exact set of such code,
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    50
     see the differences between this version and version stx:libjava
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    51
     as of 1.9.2010
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    52
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    53
"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    54
! !
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    55
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    56
!JavaExamples class methodsFor:'examples'!
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    57
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    58
example_1
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    59
    "A CD .xml parsing example. The handler prints each CD it parses
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    60
     from given XML file. Demonstrates:
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    61
      - proxy creation
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    62
      - exception handling
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    63
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    64
    cd.xml may look like:
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    65
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    66
    <?xml version='1.0' encoding='ISO-8859-1'?>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    67
    <catalog>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    68
        <cd>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    69
            <title>Empire Burlesque</title>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    70
            <artist>Bob Dylan</artist>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    71
            <country>USA</country>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    72
            <company>Columbia</company>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    73
            <price>10.90</price>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    74
            <year>1985</year>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    75
        </cd>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    76
    </catalog>
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    77
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    78
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    79
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    80
    "
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    81
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    82
    | file factory parser |
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    83
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    84
    file := (Smalltalk packageDirectoryForPackageId: self package) asFilename
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    85
                / 'data' / 'cd.xml'.
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    86
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    87
    factory := JAVA javax xml parsers SAXParserFactory newInstance.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    88
    parser := factory newSAXParser getXMLReader.
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    89
    parser setContentHandler: JavaExamples::CDDatabaseHandler1 new.
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    90
    [
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
    91
        parser parse: file pathName
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    92
    ] on: JAVA java io IOException do:[:ioe|
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    93
        Transcript showCR: 'I/O error: ', ioe getMessage.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    94
        ioe printStackTrace
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    95
    ] on: UserNotification do:[:un|
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    96
        Transcript showCR: un messageText.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    97
        un proceed.
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    98
    ]
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
    99
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   100
    "Created: / 13-05-2012 / 18:27:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   101
!
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   102
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   103
example_2
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   104
    "A CD .xml parsing example. The parser raises a UserNotification
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   105
     whenever it parses a CD. The notification is then handled and printed. 
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   106
     Demonstrates:
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   107
      - proxy creation
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   108
      - exception handling
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   109
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   110
    cd.xml may look like:
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   111
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   112
    <?xml version='1.0' encoding='ISO-8859-1'?>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   113
    <catalog>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   114
        <cd>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   115
            <title>Empire Burlesque</title>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   116
            <artist>Bob Dylan</artist>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   117
            <country>USA</country>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   118
            <company>Columbia</company>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   119
            <price>10.90</price>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   120
            <year>1985</year>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   121
        </cd>
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   122
    </catalog>
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   123
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   124
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   125
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   126
    "
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   127
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   128
    | file factory parser |
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   129
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   130
    file := (Smalltalk packageDirectoryForPackageId: self package) asFilename
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   131
                / 'data' / 'cd.xml'.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   132
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   133
    factory := JAVA javax xml parsers SAXParserFactory newInstance.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   134
    parser := factory newSAXParser getXMLReader.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   135
    parser setContentHandler: JavaExamples::CDDatabaseHandler2 new.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   136
    [
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   137
        parser parse: file pathName
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   138
    ] on: JAVA java io IOException do:[:ioe|
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   139
        Transcript showCR: 'I/O error: ', ioe getMessage.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   140
        ioe printStackTrace
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   141
    ] on: UserNotification do:[:un|
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   142
        Transcript showCR: un messageText.
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   143
        un proceed.
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   144
    ]
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   145
1628
5db2854824b5 - stx_libjava_examples
vranyj1
parents: 1573
diff changeset
   146
    "Created: / 20-08-2012 / 17:28:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1573
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   147
! !
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   148
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   149
!JavaExamples class methodsFor:'documentation'!
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   150
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   151
version_SVN
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   152
    ^ '$Id::                                                                                                                        $'
38d044a80b88 - JavaExamples
vranyj1
parents:
diff changeset
   153
! !