diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-12 16:28:03 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-12 16:28:03 -0600 |
commit | 11ef3efcea24d35785d62057da78156b160709d6 (patch) | |
tree | 432413b895272f80ed4799b36482282a54b1b1e3 | |
parent | 3e7a13ca141e69f8b3268f52c35488c7e17fde1b (diff) | |
download | scala-di-test-11ef3efcea24d35785d62057da78156b160709d6.tar.gz scala-di-test-11ef3efcea24d35785d62057da78156b160709d6.zip |
demonstrate using an alternate constructor
-rw-r--r-- | src/main/scala/cake.scala | 9 | ||||
-rw-r--r-- | src/main/scala/cake/database.scala | 11 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/main/scala/cake.scala b/src/main/scala/cake.scala index df4b1b9..0395cad 100644 --- a/src/main/scala/cake.scala +++ b/src/main/scala/cake.scala @@ -7,7 +7,11 @@ trait HasLogger extends cake.services.HasLogger { trait HasDatabase extends cake.services.HasDatabase { type DatabaseType = Database - class Database(dsn: String, username: String, password: String) extends cake.database.DBI(dsn, username, password) with IDatabase + class Database protected (dsn: String, username: String, password: String) extends cake.database.DBI(dsn, username, password) with IDatabase + object Database { + def connect(dsn: String, username: String, password: String) = + new Database(dsn, username, password) + } } trait HasApplication extends cake.services.HasApplication { @@ -24,8 +28,7 @@ class Container ( ) extends HasApplication with HasLogger with HasDatabase { lazy val application = new Application lazy val logger = new Logger(logFileName) - // val database = Database.connect("dbi:mysql:myapp", "doy", "blah") - lazy val database = new Database(dsn, username, password) + lazy val database = Database.connect(dsn, username, password) } object MyApp extends Application { diff --git a/src/main/scala/cake/database.scala b/src/main/scala/cake/database.scala index 6ba4a1c..8c3a234 100644 --- a/src/main/scala/cake/database.scala +++ b/src/main/scala/cake/database.scala @@ -1,14 +1,13 @@ package cake.database -// class DBI private ( -class DBI ( +class DBI protected ( val dsn: String, val username: String, val password: String) { def query (search: String): String = "found " + search } -// object DBI { -// def connect (dsn: String, username: String, password: String) = -// new DBI(dsn, username, password) -// } +object DBI { + def connect (dsn: String, username: String, password: String) = + new DBI(dsn, username, password) +} |