summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-12 16:28:03 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-12 16:28:03 -0600
commit11ef3efcea24d35785d62057da78156b160709d6 (patch)
tree432413b895272f80ed4799b36482282a54b1b1e3
parent3e7a13ca141e69f8b3268f52c35488c7e17fde1b (diff)
downloadscala-di-test-11ef3efcea24d35785d62057da78156b160709d6.tar.gz
scala-di-test-11ef3efcea24d35785d62057da78156b160709d6.zip
demonstrate using an alternate constructor
-rw-r--r--src/main/scala/cake.scala9
-rw-r--r--src/main/scala/cake/database.scala11
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)
+}