diff --git a/pom.xml b/pom.xml
index 6c235f7..10d896b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.sanskrit-coders
sanskrit-lttoolbox
- 0.3
+ 0.4
Language translation toolbox (lt toolbox) based utilities for Sanskrit.
@@ -85,7 +85,7 @@
com.github.sanskrit-coders
db-interface
- 2.1
+ 2.5
com.typesafe.akka
diff --git a/sanskrit-lttoolbox.iml b/sanskrit-lttoolbox.iml
index a059d2b..353710b 100644
--- a/sanskrit-lttoolbox.iml
+++ b/sanskrit-lttoolbox.iml
@@ -2,7 +2,7 @@
-
+
@@ -17,20 +17,16 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/main/scala/sanskrit_coders/scl/Generators.scala b/src/main/scala/sanskrit_coders/scl/Generators.scala
index 83b21a2..01a341f 100644
--- a/src/main/scala/sanskrit_coders/scl/Generators.scala
+++ b/src/main/scala/sanskrit_coders/scl/Generators.scala
@@ -1,9 +1,11 @@
package sanskrit_coders.scl
+import akka.actor.{Actor, ActorLogging}
+import dbSchema.grammar.{Subanta, Tinanta}
import org.slf4j.{Logger, LoggerFactory}
import sanskrit_coders.common.LtToolboxCommandWrapper
-class SubantaGenerator(override val binFilePath: String) extends LtToolboxCommandWrapper(binFilePath=binFilePath) {
+class SubantaGenerator(override val binFilePath: String) extends LtToolboxCommandWrapper(binFilePath = binFilePath) {
override val log: Logger = LoggerFactory.getLogger(getClass.getName)
final val prakaaraCodeMap = Map[String, String](
"sAXAraNa" -> "nA",
@@ -24,7 +26,7 @@ class SubantaGenerator(override val binFilePath: String) extends LtToolboxComman
)
// Example query: jFAna
- def getQuery(root: String, prakAra: String, linga: String, vibhakti: Int, vachana: Int) : String = {
+ def getQuery(root: String, prakAra: String, linga: String, vibhakti: Int, vachana: Int): String = {
s"${root}" +
s"" +
s"" +
@@ -41,6 +43,7 @@ class SubantaGenerator(override val binFilePath: String) extends LtToolboxComman
object subantaGeneratorTest {
val log = LoggerFactory.getLogger(getClass.getName)
+
def main(args: Array[String]): Unit = {
val subantaGenerator = new SubantaGenerator(binFilePath = "/home/vvasuki/scl/build/morph_bin/sup_gen.bin")
var subanta = subantaGenerator.getSubanta("jFAna", "sAXAraNa", "napum", 2, 3)
@@ -49,13 +52,13 @@ object subantaGeneratorTest {
}
-class TinantaGenerator(override val binFilePath: String) extends LtToolboxCommandWrapper(binFilePath=binFilePath) {
+class TinantaGenerator(override val binFilePath: String) extends LtToolboxCommandWrapper(binFilePath = binFilePath) {
override val log: Logger = LoggerFactory.getLogger(getClass.getName)
// aMSa1
// cur1
def getQuery(root: String, kimpadI: String, dhAtu: String, gaNa: String, prayoga: String,
- lakAra: String, puruSha: String, vachana: String) : String = {
+ lakAra: String, puruSha: String, vachana: String): String = {
s"${root}" +
s"" +
s"" +
@@ -69,8 +72,8 @@ class TinantaGenerator(override val binFilePath: String) extends LtToolboxComman
// cur1
def getTinanta(root: String, kimpadI: String, dhAtu: String, gaNa: String, prayoga: String,
- lakAra: String, puruSha: String, vachana: String) : Seq[String] = {
- val result = queryBin(getQuery(root=root, kimpadI = kimpadI, dhAtu = dhAtu, gaNa = gaNa, prayoga = prayoga, lakAra = lakAra, puruSha = puruSha, vachana = vachana))
+ lakAra: String, puruSha: String, vachana: String): Seq[String] = {
+ val result = queryBin(getQuery(root = root, kimpadI = kimpadI, dhAtu = dhAtu, gaNa = gaNa, prayoga = prayoga, lakAra = lakAra, puruSha = puruSha, vachana = vachana))
result.split("/")
}
@@ -81,6 +84,7 @@ class TinantaGenerator(override val binFilePath: String) extends LtToolboxComman
//cur1
object tinantaGeneratorTest {
val log = LoggerFactory.getLogger(getClass.getName)
+
def main(args: Array[String]): Unit = {
val tinantaGenerator = new TinantaGenerator(binFilePath = "/home/vvasuki/scl/build/morph_bin/wif_gen.bin")
var tinanta = tinantaGenerator.getTinanta(root = "cur1", kimpadI = "parasmEpaxI", dhAtu = "curaz",
@@ -90,3 +94,26 @@ object tinantaGeneratorTest {
}
}
+
+
+class GeneratorActor(subantaGenerator: SubantaGenerator, tinantaGenerator: TinantaGenerator) extends Actor with ActorLogging {
+
+ def receive: Receive = {
+ case subanta: Subanta => {
+ var vibhaktiNum = subanta.vibhakti.get.vibhaktiNum
+ if(subanta.vibhakti.get.prakaara != None) {
+ vibhaktiNum = 8
+ }
+
+ val padas = subantaGenerator.getSubanta(root = subanta.praatipadika.get.root, prakAra = subanta.praatipadika.get.prakaara.get, linga = subanta.praatipadika.get.linga.get, vibhakti = vibhaktiNum, vachana = subanta.vachana.get)
+ sender() ! padas
+ }
+ case tinanta: Tinanta => {
+ val padas = tinantaGenerator.getTinanta(root = tinanta.dhaatu.get.sclCode.get, kimpadI = tinanta.vivaxaa.get.kimpadI.get, dhAtu = tinanta.dhaatu.get.aupadeshikaDhaatu.get,
+ gaNa = tinanta.dhaatu.get.gaNa.get,
+ prayoga = tinanta.vivaxaa.get.prayoga.get, lakAra = tinanta.vivaxaa.get.lakaara.get, puruSha = tinanta.vivaxaa.get.puruSha.get, vachana = tinanta.vivaxaa.get.vachana.get)
+ sender() ! padas
+ }
+ }
+}
+