Package

com.eharmony.aloha

reflect

Permalink

package reflect

A facade layer on top of the scala reflection APIs to avoid bugs currently in the TypeTag implementation.

Because of SI-7555, we want to insulate ourselves from reflection bugs. We do want to make the switch painless when we finally go from scala.reflect.Manifest to scala.reflect.runtime.universe.TypeTag based reflection. To accomplish this, we add a layer of indirection and later, we'll only have to modify the facade assuming that all of the code using reflection refers to the facade. Once everything has settled down on the scala reflection landscape, we'll refer directly to the reflection APIs.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. reflect
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. type RefInfo[A] = Manifest[A]

    Permalink

    Type alias for Reflection meta-information type.

    Type alias for Reflection meta-information type. Manifest, TypeTag, etc. Currently, this is Manifest. Once [https://issues.scala-lang.org/browse/SI-7555 SI-7555] is addressed, we can move over to a scala.reflect.runtime.universe.TypeTag based implementation.

    NOTE: If all goes well, we should be able to just swap this one type definition and everything will still work (once scala 2.10-based reflection is fixed). If this isn't the case, we need to add and reference additional functionality in the facade layer.

  2. sealed trait RefInfoOps[RefInfoType[_]] extends AnyRef

    Permalink

    A facade layer on top of the scala reflection APIs to avoid bugs currently in the reflection implementation.

    A facade layer on top of the scala reflection APIs to avoid bugs currently in the reflection implementation. For more information, see SI-7555.

    RefInfoType

    The reflection meta-information container.

  3. trait ReflectionConversions extends AnyRef

    Permalink
  4. trait RuntimeClasspathScanning extends AnyRef

    Permalink

    Created by ryan.deak on 9/6/17.

Value Members

  1. object RefInfo

    Permalink
  2. object RefInfoOps extends RefInfoOps[RefInfo] with EitherHelpers

    Permalink

    Concrete implementations for retrieving and manipulating reflection meta information.

    Concrete implementations for retrieving and manipulating reflection meta information. All reflection in the library should use this facade and should not use Manifests or TypeTags.

  3. object ReflectionConversions extends ReflectionConversions

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped