From: Alexis Laferrière Date: Mon, 14 Jul 2014 15:14:29 +0000 (-0400) Subject: tests: test generics in Java FFI X-Git-Tag: v0.6.7~66^2 X-Git-Url: http://nitlanguage.org tests: test generics in Java FFI Signed-off-by: Alexis Laferrière --- diff --git a/tests/sav/test_ffi_java_generics.res b/tests/sav/test_ffi_java_generics.res new file mode 100644 index 0000000..514b4d6 --- /dev/null +++ b/tests/sav/test_ffi_java_generics.res @@ -0,0 +1,12 @@ +a +b +c +d +e +f +e +f +remove: a +remove: b +remove: c +remove: d diff --git a/tests/test_ffi_java_generics.nit b/tests/test_ffi_java_generics.nit new file mode 100644 index 0000000..8c968fd --- /dev/null +++ b/tests/test_ffi_java_generics.nit @@ -0,0 +1,54 @@ +# This file is part of NIT ( http://www.nitlanguage.org ). +# +# Copyright 2014 Alexis Laferrière +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +module test_ffi_java_generics + +import java + +in "Java" `{ + import java.util.*; + import java.util.concurrent.LinkedBlockingQueue; +`} + +extern class JavaQueueOfString in "Java" `{ java.util.Queue `} + new in "Java" `{ + return new LinkedBlockingQueue(); + `} + + fun offer(o: JavaString) in "Java" `{ recv.offer(o); `} + + fun remove: JavaString in "Java" `{ return recv.remove(); `} + + redef fun output in "Java" `{ + for (String s: recv) { + System.out.println(s); + } + `} +end + +var ll = new JavaQueueOfString +ll.offer "a".to_java_string +ll.offer "b".to_java_string +ll.offer "c".to_java_string +ll.offer "d".to_java_string +ll.offer "e".to_java_string +ll.offer "f".to_java_string +ll.output +print "remove: " + ll.remove.to_s +print "remove: " + ll.remove.to_s +print "remove: " + ll.remove.to_s +print "remove: " + ll.remove.to_s +ll.output