aboutsummaryrefslogtreecommitdiff
path: root/plugin/src/sbt-test/sbt-jni/multiclasses/core
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/sbt-test/sbt-jni/multiclasses/core')
-rw-r--r--plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Adder.scala18
-rw-r--r--plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Main.scala30
-rw-r--r--plugin/src/sbt-test/sbt-jni/multiclasses/core/src/main/scala/multiclasses/Multiplier.scala12
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
+
+}