Package

wvlet.airframe

surface

Permalink

package surface

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

Type Members

  1. case class Alias(name: String, fullName: String, ref: Surface) extends GenericSurface with Product with Serializable

    Permalink
  2. case class ArraySurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface with Product with Serializable

    Permalink
  3. class CName extends Comparable[CName]

    Permalink

    Canonical name.

    Canonical name. This name is used as a common name of wording variants (e.g., difference of capital letter usage, hyphenation, etc.)

  4. case class ClassMethodSurface(mod: Int, owner: Surface, name: String, returnType: Surface, args: Seq[MethodParameter], methodCaller: Option[(Any, Seq[Any]) ⇒ Any]) extends MethodSurface with Product with Serializable

    Permalink
  5. case class EnumSurface(rawType: Class[_]) extends GenericSurface with Product with Serializable

    Permalink
  6. class GenericSurface extends Surface

    Permalink

    Base class for generic surfaces with type args

  7. case class HigherKindedTypeSurface(name: String, fullName: String, ref: Surface) extends GenericSurface with Product with Serializable

    Permalink
  8. case class LazySurface(rawType: Class[_], fullName: String, typeArgs: Seq[Surface]) extends Surface with Product with Serializable

    Permalink

    Surface placeholder for supporting recursive types

  9. trait MethodParameter extends Parameter

    Permalink
  10. case class MethodRef(owner: Class[_], name: String, paramTypes: Seq[Class[_]], isConstructor: Boolean) extends Product with Serializable

    Permalink
  11. trait MethodSurface extends ParameterBase

    Permalink
  12. trait ObjectFactory extends Serializable

    Permalink

  13. case class OptionSurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface with Product with Serializable

    Permalink
  14. trait Parameter extends ParameterBase

    Permalink
  15. sealed trait ParameterBase extends Serializable

    Permalink
  16. case class StdMethodParameter(method: MethodRef, index: Int, name: String, isRequired: Boolean, surface: Surface, defaultValue: Option[Any] = None, accessor: Option[(Any) ⇒ Any] = None) extends MethodParameter with Product with Serializable

    Permalink

    Parameters of a Surface

  17. trait Surface extends Serializable

    Permalink
  18. case class TaggedSurface(base: Surface, tag: Surface) extends Surface with Product with Serializable

    Permalink
  19. case class TupleSurface(rawType: Class[_], typeArgs: Seq[Surface]) extends GenericSurface with Product with Serializable

    Permalink
  20. class required extends Annotation with Annotation with ClassfileAnnotation

    Permalink

Value Members

  1. object AnyRefSurface extends GenericSurface with Product with Serializable

    Permalink
  2. object CName

    Permalink

    Utility for managing names written in different spellings.

    Utility for managing names written in different spellings. For example, variable name localAddress can be written as "local address", "local_address", etc.

    CanonicalName is the representative name of these variants.

    CName("localAddress") == CName("local address") == CName("local_address")
    

  3. object CanonicalNameFormatter

    Permalink

  4. object ExistentialType extends GenericSurface with Product with Serializable

    Permalink
  5. object MethodModifier

    Permalink

  6. object Primitive

    Permalink
  7. object Surface extends Serializable

    Permalink
  8. object SurfaceFactory

    Permalink

  9. object Zero extends LogSupport

    Permalink

    Create a default instance (zero) from Surface

  10. def getCached(fullName: String): Surface

    Permalink
  11. def newCacheMap[A, B]: Map[A, B]

    Permalink
  12. package reflect

    Permalink

  13. package tag

    Permalink

    This code is from com.softwaremill.tagging

    This code is from com.softwaremill.tagging

    Tag instances with arbitrary types. The tags are usually empty traits. Tags have no runtime overhead and are only used at compile-time for additional type safety.

    For example:

    class Berry()
    
    trait Black
    trait Blue
    
    val berry = new Berry()
    val blackBerry: Berry @@ Black = berry.taggedWith[Black]
    val blueBerry: Berry @@ Blue = berry.taggedWith[Blue]
    
    // compile error: val anotherBlackBerry: Berry @@ Black = blueBerry

    Original idea by Miles Sabin, see: https://gist.github.com/milessabin/89c9b47a91017973a35f

Inherited from AnyRef

Inherited from Any

Ungrouped