1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
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!");
}
}
|