home *** CD-ROM | disk | FTP | other *** search
- import java.util.*;
-
- public class Test {
-
- int myint = 123;
- double mydouble = 3.14159265;
- String mystring = "my string";
- static String ourstring = "our string";
- static boolean embedded = false;
- int array[] = {1,2,3};
- Vector v;
-
- public Test() {
-
-
- v = new Vector();
- v.addElement("Hello");
- printfields();
- Vector x = perlTryVec(v);
- x.addElement("World");
- Vector y = perlTryVec(x);
- if (!embedded) System.err.println("Thank you, perlTryVec!");
-
- if (!embedded) System.err.println(retchars());
- if (!embedded) System.err.println("Thank you, retchars!");
-
- String[] s = retstrings();
- if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
- if (!embedded) System.err.println("Thank you, retstrings!");
-
- Object[] o = retobjects(v, x, y);
- if (!embedded) System.err.println(o[1]);
- if (!embedded) System.err.println(o[3]);
- if (!embedded) System.err.println(o[4]);
- if (!embedded) System.err.println("Thank you, retobjects!");
-
- passarray(s);
-
- if (!embedded) System.err.println(s[0] + s[1] + s[2] + s[3]);
- if (!embedded) System.err.println("Thank you, passarray!");
-
- printfields();
- if (!embedded) System.err.println("Thank you, printfields!");
- setfields();
- if (!embedded) System.err.println("Thank you, setfields!");
- printfields();
- if (!embedded) System.err.println("Thank you, printfields!");
- }
-
- perl Vector perlTryVec(Vector v) throws RuntimeException {{
- print "v is: $v\n";
- print "v isa: ", ref $v,"\n";
-
- print "In perlTryVec() - Vector size is: ", $v->size([],['int']), "\n";
- @foo = times;
- $size ||= getmeth('size', [], ['int']);
- for ($i = 10000; $i; --$i) {
- $x = $v->$size();
- }
- @bar = times;
- printf "%5.2fu %5.2fs\n", $bar[0] - $foo[0], $bar[1] - $foo[1];
- return $v;
- }}
-
- perl char[] retchars() {{
- print "In retchars()\n";
- return [65,66,67];
- }}
-
- perl String[] retstrings() {{
- print "In retstrings()\n";
- return [1,2,3,"many"];
- }}
-
- perl Object[] retobjects(Vector v, Vector x, Vector y) {{
- print "In retstrings()\n";
- return [$v, $x, $y, "this is only a test", 123];
- }}
-
- perl void passarray(String[] s) {{
- print "In passarray()\n";
- print "s = $s\n";
- $t = GetObjectArrayElement($s,3);
- print "t = $t\n";
- $x = GetStringUTFChars($t);
- print "$x\n";
- $t = SetObjectArrayElement($s,3,NewStringUTF("infinity"));
- }}
-
- perl void printfields() {{
-
- $| = 1;
- eval {print $self->v->toString____s(), "\n";};
- print $@ if $@;
-
- print $self->myint, "\n";
- print $self->mydouble, "\n";
- print $self->mystring, "\n";
- print JPL::Test->ourstring, "\n";
-
- @nums = GetIntArrayElements($self->array());
- print "@nums\n";
-
- @nums = unpack("i*", scalar GetIntArrayElements($self->array()));
- print "@nums\n";
- }}
-
- perl void setfields() {{
- $self->myint(321);
- $self->mydouble(2.7182918);
- $self->mystring("MY STRING!!!");
- JPL::Test->ourstring("OUR STRING!!!");
- }}
-
- public static void main(String[] argv) {
- if (java.lang.reflect.Array.getLength(argv) > 0 &&
- argv[0].equals("-nothanks"))
- embedded = true;
- Test f = new Test();
- if (!embedded) System.err.println("Thank you, Test!");
- }
- }
-