diff options
Diffstat (limited to 'plugin/src/sbt-test/sbt-jni/multiclasses/core')
3 files changed, 60 insertions, 0 deletions
diff --git a/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Adder.scala b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Adder.scala new file mode 100644 index 0000000..91d5683 --- /dev/null +++ b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Adder.scala @@ -0,0 +1,18 @@ +package multiclasses + +import ch.jodersky.jni.nativeLoader + +@nativeLoader("demo0") +class Adder(base0: Int) { + + final private val base = base0 + + @native def plus(term: Int): Int + +} + +object Adder { + + @native def sum(term1: Int, term2: Int): Int + +} diff --git a/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Main.scala b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Main.scala new file mode 100644 index 0000000..6734ae9 --- /dev/null +++ b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Main.scala @@ -0,0 +1,30 @@ +package multiclasses + +object Main { + + def addition(): Unit = { + val zero = new Adder(0) + val one = new Adder(1) + assert((zero plus 1) == 1) + assert((one plus 1) == 2) + assert(Adder.sum(0,1) == 1) + } + + def multiplication(): Unit = { + val zero = new Multiplier { + override def base = 0 + } + + val one = new Multiplier { + override def base = 1 + } + assert((zero times 1) == 0) + assert((one times 1) == 1) + } + + def main(args: Array[String]): Unit = { + addition() + multiplication() + } + +} diff --git a/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Multiplier.scala b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Multiplier.scala new file mode 100644 index 0000000..19cd25f --- /dev/null +++ b/plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Multiplier.scala @@ -0,0 +1,12 @@ +package multiclasses + +import ch.jodersky.jni.nativeLoader + +@nativeLoader("multiplier1") +abstract class Multiplier { + + def base: Int = 1 + + @native def times(factor: Int): Int + +} |