uk.gov.hmrc.customs.api.common.config

# ConfigValidationNelAdaptor

###
Related Doc: package config

#### class ConfigValidationNelAdaptor extends AnyRef

We need a wrapper for ServicesConfig as the current API rely's on throwing exceptions for signalling failure - this is fail fast behaviour. What we want is to aggregate errors (on application startup). The `ValidationNel` class in the `scalaz` library gives a type that allows us aggregate errors. It's declaration is `type ValidationNel[E, +X] = Validation[NonEmptyList[E], X]` `Nel` is short for `NonEmptyList` which is simply a `List` that is guaranteed to contain at least 1 item.

Example usage:

    @Singleton
    class CustomsConfigService @Inject()(configValidationNel: ConfigValidationNelAdaptor) {
      private val root = configValidationNel.root
      private val validatedCustomsEnrolmentConfig: ValidationNel[String, CustomsEnrolmentConfig] = (
        root.string("customs.enrolment.name") |@|
        root.string("customs.enrolment.eori-identifier")
      )(CustomsEnrolmentConfig.apply)
    ...
    }

Annotations
  @Singleton()

Linear Supertypes
AnyRef, Any
Ordering

1. Alphabetic
2. By Inheritance

Inherited

1. ConfigValidationNelAdaptor
2. AnyRef
3. Any

1. Hide All
2. Show All

Visibility

1. Public
2. All

### Instance Constructors

1. #### new ConfigValidationNelAdaptor(servicesConfig: ServicesConfig, configuration: Configuration)

   servicesConfig

     HMRC services config lib class

   Annotations
     @Inject()

### Type Members

1. #### trait RootValidationNelAdaptor extends ValidationNelAdaptor

2. #### trait UrlNelAdaptor extends AnyRef

3. #### trait ValidationNelAdaptor extends AnyRef

### Value Members

1. #### final def !=(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Definition Classes
     AnyRef → Any

3. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

4. #### final def asInstanceOf[T0]: T0

   Definition Classes
     Any

5. #### def clone(): AnyRef

   Attributes
     protected[java.lang]
   Definition Classes
     AnyRef
   Annotations
     @throws( ... )

6. #### final def eq(arg0: AnyRef): Boolean

   Definition Classes
     AnyRef

7. #### def equals(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

8. #### def finalize(): Unit

   Attributes
     protected[java.lang]
   Definition Classes
     AnyRef
   Annotations
     @throws( classOf[java.lang.Throwable] )

9. #### final def getClass(): Class[_]

   Definition Classes
     AnyRef → Any

10. #### def hashCode(): Int

    Definition Classes
      AnyRef → Any

11. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

12. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

13. #### final def notify(): Unit

    Definition Classes
      AnyRef

14. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

15. #### def root: RootValidationNelAdaptor

16. #### def service(serviceName: String): ValidationNelAdaptor with UrlNelAdaptor

17. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

18. #### def toString(): String

    Definition Classes
      AnyRef → Any

19. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

20. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

21. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

### Inherited from AnyRef

### Inherited from Any

### Ungrouped