/scalate-guice/src/main/scala/org/fusesource/scalate/guice/RichBuilder.scala

http://github.com/scalate/scalate · Scala · 60 lines · 25 code · 13 blank · 22 comment · 0 complexity · 09e15c15696f525db613ded5713d545a MD5 · raw file

  1. /**
  2. * Copyright (C) 2009-2011 the original author or authors.
  3. * See the notice.md file distributed with this work for additional
  4. * information regarding copyright ownership.
  5. *
  6. * Licensed under the Apache License, Version 2.0 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. *
  10. * http://www.apache.org/licenses/LICENSE-2.0
  11. *
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. */
  18. package org.fusesource.scalate.guice
  19. import _root_.com.google.inject.Key
  20. import _root_.com.google.inject.servlet.ServletModule
  21. import _root_.javax.servlet.http.HttpServlet
  22. /**
  23. * This helper class provides a workaround for using 'with' in the Guice Servlet DSL
  24. *
  25. * @version $Revision : 1.1 $
  26. */
  27. class RichBuilder(builder: ServletModule.ServletKeyBindingBuilder) {
  28. def by[T <: HttpServlet](servletKey: Class[T]): Unit = { builder.`with`(servletKey) }
  29. def by[T <: HttpServlet](
  30. servletKey: Class[T], params: java.util.Map[String, String]): Unit = { builder.`with`(servletKey, params) }
  31. def by[T <: HttpServlet](servletKey: Key[T]): Unit = { builder.`with`(servletKey) }
  32. def by[T <: HttpServlet, S](
  33. servletKey: Key[T],
  34. params: java.util.Map[String, String]): Unit = { builder.`with`(servletKey, params) }
  35. def withClass[T <: HttpServlet](servletKey: Class[T]): Unit = {
  36. builder.`with`(servletKey)
  37. }
  38. def withClass[T <: HttpServlet](
  39. servletKey: Class[T],
  40. params: java.util.Map[String, String]): Unit = { builder.`with`(servletKey, params) }
  41. def withClass[T <: HttpServlet](servletKey: Key[T]): Unit = {
  42. builder.`with`(servletKey)
  43. }
  44. def withClass[T <: HttpServlet](
  45. servletKey: Key[T],
  46. params: java.util.Map[String, String]): Unit = { builder.`with`(servletKey, params) }
  47. }