trait ConfTyped extends AnyRef
Trait that provides a DSL for creating a typed hierarchical configuration object.
It provides access to two main abstractions: Conf and Prop
Example:
import za.co.absa.commons.config._
object MyAppConfig extends ConfTyped {
val confSource: java.util.Properties = ???
override val rootPrefix = "com.example"
object Foo extends Conf("foo") {
object Bar extends Conf("bar") {
val baz: String = confSource getProperty Prop("baz")
val qux: String = confSource getProperty Prop("qux")
}
}
}
// somewhere in your application
import MyAppConfig._
val baz = Foo.Bar.baz // mapped to the key "com.example.foo.bar.baz" in the confSource
val baz = Foo.Bar.qux // mapped to the key "com.example.foo.bar.qux" in the confSource
Note that ConfTyped doesn't impose or depend on the way how the configuration values are loaded. It only provides a convenient way to implicitly construct the configuration key names from the nested object structure.
The key names are obtained by calling Prop("...") method.
It returns a full property key name that reflects the nesting structure of the Conf instances' names,
concatenated with dot (.) and prefixed with the rootPrefix if one is provided.
Another example of usage ConfTyped:
val props = new java.util.Properties with ConfTyped {
val foo = new Conf("foo") {
val bar = new Conf("bar") {
lazy val baz = getProperty(Prop("baz"))
}
}
}
props.put("foo.bar.baz", "42")
println(props.foo.bar.baz) // prints 42
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- ConfTyped
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
val
rootPrefix: String
- Attributes
- protected
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
object
Prop
- Attributes
- protected
Deprecated Value Members
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] ) @Deprecated @deprecated
- Deprecated
(Since version ) see corresponding Javadoc for more information.