Add POLLUTE=1 option to MakeMaker
[p5sagit/p5-mst-13.2.git] / jpl / Test / Test.jpl
1 import java.util.*;
2  
3 public class Test {
4  
5     int myint = 123;
6     double mydouble = 3.14159265;
7     String mystring = "my string";
8     static String ourstring = "our string";
9     static boolean embedded = false;
10     int array[] = {1,2,3};
11     Vector v;
12
13     public Test() {
14  
15
16         v = new Vector();
17         v.addElement("Hello");
18         printfields();
19         Vector x = perlTryVec(v);
20         x.addElement("World");
21         Vector y = perlTryVec(x);
22         if (!embedded) System.err.println("Thank you, perlTryVec!");
23
24         if (!embedded) System.err.println(retchars());
25         if (!embedded) System.err.println("Thank you, retchars!");
26
27         String[] s = retstrings();
28         if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
29         if (!embedded) System.err.println("Thank you, retstrings!");
30
31         Object[] o = retobjects(v, x, y);
32         if (!embedded) System.err.println(o[1]);
33         if (!embedded) System.err.println(o[3]);
34         if (!embedded) System.err.println(o[4]);
35         if (!embedded) System.err.println("Thank you, retobjects!");
36
37         passarray(s);
38
39         if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
40         if (!embedded) System.err.println("Thank you, passarray!");
41
42         printfields();
43         if (!embedded) System.err.println("Thank you, printfields!");
44         setfields();
45         if (!embedded) System.err.println("Thank you, setfields!");
46         printfields();
47         if (!embedded) System.err.println("Thank you, printfields!");
48     }
49  
50     perl Vector perlTryVec(Vector v) throws RuntimeException {{
51         print "v is: $v\n";
52         print "v isa: ", ref $v,"\n";
53
54         print "In perlTryVec() - Vector size is: ", $v->size([],['int']), "\n";
55         @foo = times;
56         $size ||= getmeth('size', [], ['int']);
57         for ($i = 10000; $i; --$i) {
58             $x = $v->$size();
59         }
60         @bar = times;
61         printf "%5.2fu %5.2fs\n", $bar[0] - $foo[0], $bar[1] - $foo[1];
62         return $v;
63     }}
64
65     perl char[] retchars() {{
66         print "In retchars()\n";
67         return [65,66,67];
68     }}
69
70     perl String[] retstrings() {{
71         print "In retstrings()\n";
72         return [1,2,3,"many"];
73     }}
74  
75     perl Object[] retobjects(Vector v, Vector x, Vector y) {{
76         print "In retstrings()\n";
77         return [$v, $x, $y, "this is only a test", 123];
78     }}
79
80     perl void passarray(String[] s) {{
81         print "In passarray()\n";
82         print "s = $s\n";
83         $t = GetObjectArrayElement($s,3);
84         print "t = $t\n";
85         $x = GetStringUTFChars($t);
86         print "$x\n";
87         $t = SetObjectArrayElement($s,3,NewStringUTF("infinity"));
88     }}
89  
90     perl void printfields() {{
91
92         $| = 1;
93         eval {print $self->v->toString____s(), "\n";};
94         print $@ if $@;
95
96         print $self->myint, "\n";
97         print $self->mydouble, "\n";
98         print $self->mystring, "\n";
99         print JPL::Test->ourstring, "\n";
100
101         @nums = GetIntArrayElements($self->array());
102         print "@nums\n";
103
104         @nums = unpack("i*", scalar GetIntArrayElements($self->array()));
105         print "@nums\n";
106     }}
107
108     perl void setfields() {{
109         $self->myint(321);
110         $self->mydouble(2.7182918);
111         $self->mystring("MY STRING!!!");
112         JPL::Test->ourstring("OUR STRING!!!");
113     }}
114
115     public static void main(String[] argv) {
116         if (java.lang.reflect.Array.getLength(argv) > 0 &&
117           argv[0].equals("-nothanks"))
118             embedded = true;
119         Test f = new Test();
120         if (!embedded) System.err.println("Thank you, Test!");
121     }
122 }