Advertisement
Guest User

Untitled

a guest
May 11th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.14 KB | None | 0 0
  1. object Config {
  2.   def from(url: String): ConfigBuilder = ???
  3. }
  4.  
  5. trait ConfigBuilder {
  6.   def overrideWith(url: String): ConfigBuilder
  7.   def overrideWith(props: java.util.Map[_, _]): ConfigBuilder
  8.   def overrideWith(cmdlineArgs: Array[String]): ConfigBuilder
  9.  
  10.   def param[Type](name: String, description: String, mandatory: Boolean)(implicit mf: Manifest[Type]): ConfigBuilder
  11.  
  12.   def build(): Config
  13. }
  14.  
  15. trait Config {
  16.   def readProperties(file: String, env: String = EnvironmentResolver()): ConfigPropeties
  17.   def readText(file: String, env: String = EnvironmentResolver(), encoding: Charset = StandardCharsets.UTF_8): String
  18.   def readFile(file: String, env: String = EnvironmentResolver()): InputStream
  19.  
  20.   def printHelp(w: PrintStream  = System.out)
  21.  
  22.   def knownParams(): Set[String]
  23. }
  24.  
  25. trait ConfigPropeties {
  26.   def props(): Properties
  27.   def map(): Map[String, String]
  28.  
  29.   def get[Type](key: String): Option[Type]
  30.  
  31.   def validate(): List[String]
  32. }
  33.  
  34. object ConfigPropeties {
  35.   implicit def toProperties(confProps: ConfigPropeties): Properties = confProps.props()
  36. }
  37.  
  38. object EnvironmentResolver {
  39.   def apply() = ???
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement