Trait/Object

com.eharmony.aloha.reflect

RefInfoOps

Related Docs: object RefInfoOps | package reflect

Permalink

sealed trait RefInfoOps[RefInfoType[_]] extends AnyRef

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.

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

Type Members

  1. trait Lift1[A] extends AnyRef

    Permalink

    Provides a generic way of lifting A into a container for which a RefInfoType instance can be retrieved.

    Provides a generic way of lifting A into a container for which a RefInfoType instance can be retrieved.

    A

    type to be lifted.

  2. trait Lift2[A, B] extends AnyRef

    Permalink

    Provides a generic way of lifting A and B into a container for which a RefInfoType instance can be retrieved.

    Provides a generic way of lifting A and B into a container for which a RefInfoType instance can be retrieved.

    A

    first type to be lifted.

    B

    second type to be lifted.

Abstract Value Members

  1. abstract def either[A, B](implicit arg0: RefInfoType[A], arg1: RefInfoType[B]): RefInfoType[Either[A, B]]

    Permalink

    Get reflection information about scala.util.Either.

    Get reflection information about scala.util.Either.

    A

    left type parameter of Either

    B

    right type parameter of Either

    returns

    reflection information about scala.util.Either

  2. abstract def execStaticNoArgFunc[A](name: String)(implicit arg0: RefInfo[A]): Either[Seq[String], AnyRef]

    Permalink
  3. abstract def fromSimpleClass[A](clazz: Class[_ <: A]): RefInfoType[A]

    Permalink

    Get reflection info from a simple Class.

    Get reflection info from a simple Class. Will throw an exception if we find that the type is parametrized.

    A

    the type of the RefInfoType to create

    clazz

    a Class object

    Annotations
    @throws( ... )
  4. abstract def genAggFunc[A, B](implicit arg0: RefInfoType[A], arg1: RefInfoType[B]): RefInfoType[GenAggFunc[A, B]]

    Permalink

    Get reflection information about com.eharmony.aloha.semantics.func.GenAggFunc

    Get reflection information about com.eharmony.aloha.semantics.func.GenAggFunc

    A

    function input type

    B

    function output type

    returns

    reflection information about com.eharmony.aloha.semantics.func.GenAggFunc

  5. abstract def isImmutableIterableButNotMap[A, Iter](implicit a: RefInfoType[A], possibleIterable: RefInfoType[Iter]): Boolean

    Permalink

    Attempt to determine if possibleIterable is a scala.collection.immutable.Iterable[A] but not a scala.collection.Map.

    Attempt to determine if possibleIterable is a scala.collection.immutable.Iterable[A] but not a scala.collection.Map.

    This is kind of a stopgap solution because the subtype operator <:< doesn't really work well for Manifests. This is an issue because currently, Aloha uses Manifests rather than TypeTags for type checking. Comments in ClassManifestDeprecatedApis says:

    "this part is wrong for punting unless the rhs has no type arguments, but it's better than a blindfolded pinata swing."

    A

    element type

    Iter

    possible iterable type.

    a

    RefInfo instance of element type

    possibleIterable

    a possible Iterable

    returns

    true if possibleIterable is a scala.collection.immutable.Iterable[A] but not a scala.collection.Map[_, _].

  6. abstract def isSubType[Sub, Super](implicit sub: RefInfoType[Sub], sup: RefInfoType[Super]): Boolean

    Permalink

    Is Sub a subtype of Super

    Is Sub a subtype of Super

    Sub

    subtype in test

    Super

    supertype in test

    sub

    RefInfo instance of type A

    sup

    RefInfo instance of type A

  7. abstract def option[A](implicit arg0: RefInfoType[A]): RefInfoType[Option[A]]

    Permalink

    Get reflection information about Option.

    Get reflection information about Option.

    A

    type of Option

    returns

    reflection information about Option.

  8. abstract def toString[A](implicit arg0: RefInfoType[A]): String

    Permalink

    Get a string representation of the RefInfoType.

    Get a string representation of the RefInfoType. This should be adequate to full characterize the type and any type parameters (i.e., should contain the erased type information)

    A

    type of the reflected object whose string-based representation the function is retrieving.

    returns

    string-based representation of A

  9. abstract def typeParams[A](implicit a: RefInfoType[A]): List[RefInfoType[_]]

    Permalink
  10. abstract def validation[A, B](implicit arg0: RefInfoType[A], arg1: RefInfoType[B]): RefInfoType[Validation[A, B]]

    Permalink

    Get reflection information about scalaz.Validation.

    Get reflection information about scalaz.Validation.

    A

    left type parameter of Validation

    B

    right type parameter of Validation

    returns

    reflection information about scalaz.Validation

  11. abstract def validationNel[A, B](implicit arg0: RefInfoType[A], arg1: RefInfoType[B]): RefInfoType[ValidationNel[A, B]]

    Permalink

    Get reflection information about scalaz.ValidationNel.

    Get reflection information about scalaz.ValidationNel.

    A

    left type parameter of ValidationNel

    B

    right type parameter of ValidationNel

    returns

    reflection information about scalaz.ValidationNel

Concrete Value Members

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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  13. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  15. def refInfo[A](implicit arg0: RefInfoType[A]): RefInfoType[A]

    Permalink

    Get the RefInfoType instance for type A.

    Get the RefInfoType instance for type A.

    A

    type for which reflection information should be retrieved.

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

    Permalink
    Definition Classes
    AnyRef
  17. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  18. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. def wrap[A, B](implicit arg0: RefInfoType[A], arg1: RefInfoType[B]): Lift2[A, B]

    Permalink

    Provides a generic mechanism to wrap the types A and B inside a container taking two parameters.

    Provides a generic mechanism to wrap the types A and B inside a container taking two parameters.

    val w = RefInfoOps.wrap[String, Double]
    // pass around w to some other object ...
    val e: RefInfo[Either[String, Double]] = w.in[Either]
    
    import scalaz.Validation
    val v1 = RefInfoOps.wrap[String, Double].in[Validation]
    val v2 = RefInfoOps.validation[String, Double]
    assert(v1 == v2)
    A

    first type being lifted.

    B

    second type being lifted.

    returns

    a Lift2 instance containing information about A and B that can be used to later construct a RefInfoType from a kind passed to the in function.

  22. def wrap[A](implicit arg0: RefInfoType[A]): Lift1[A]

    Permalink

    Get a Lift1 instance to wrap type A in a RefInfoType.

    Get a Lift1 instance to wrap type A in a RefInfoType.

    val w = RefInfoOps.wrap[String]
    val o1 = w.in[Option]
    val o2 = RefInfoOps.option[String]
    assert(o1 == o2)
    A

    type being lifted

Inherited from AnyRef

Inherited from Any

Ungrouped