All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tresql.java_api.Env.scala Maven / Gradle / Ivy

The newest version!
package org.tresql.java_api

import java.sql.Connection

import org.tresql._
import org.tresql.metadata.JDBCMetadata
import org.tresql.{ThreadLocalResources => TLR}

trait IdExprFunc { def getIdExpr(table: String): String }
trait LogMessage { def get: String }
trait LogParams { def get: Seq[(String, Any)] }
trait Logger { def log(msg: LogMessage, params: LogParams, topic: LogTopic): Unit }
object Dialects {
  def ANSISQL = dialects.ANSISQLDialect
  def HSQL = dialects.HSQLDialect
  def Oracle = dialects.OracleDialect
}
object Metadata {
  def JDBC(conn: Connection, defaultSchema: String) = JDBCMetadata(conn, defaultSchema)
}

trait ThreadLocalResources extends TLR {
  import CoreTypes._

  var javaLogger: Logger = null

  def getConnection: Connection = conn
  def setConnection(c: Connection): Unit = { conn = c }
  def getDialect: Dialect = dialect
  def setDialect(d: Dialect): Unit = { dialect = d }
  def getIdExprFunc: IdExprFunc = new IdExprFunc {
    override def getIdExpr(table: String) = idExpr(table)
  }
  def setIdExprFunc(f: IdExprFunc): Unit = { idExpr = f.getIdExpr }
  def getMetadata: Metadata = metadata
  def setMetadata(md: Metadata): Unit = { metadata = md }

  def getCache = cache

  override def logger = (msg, params, topic) =>
    if (javaLogger != null) javaLogger.log(new LogMessage { override def get = msg },
      new LogParams { override def get = params }, topic)

  def setLogger(logger: Logger) = javaLogger = logger

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy