wvlet.airframe.surface

Members list

Packages

Attributes

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

Attributes

Type members

Classlikes

case class Alias(name: String, fullName: String, ref: Surface) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
case object AnyRefSurface extends GenericSurface

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
Self type
case class ArraySurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
object CName

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

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") 

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
CName.type
class CName(val canonicalName: String, val naturalName: String) extends Comparable[CName]

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

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

Attributes

Companion
object
Supertypes
trait Comparable[CName]
class Object
trait Matchable
class Any

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
case class ClassMethodSurface(mod: Int, owner: Surface, name: String, returnType: Surface, args: Seq[MethodParameter], methodCaller: Option[(Any, Seq[Any]) => Any]) extends MethodSurface

Attributes

Supertypes
trait Product
trait Equals
trait Serializable
class Object
trait Matchable
class Any
Show all
case class EnumSurface(rawType: Class[_], stringExtractor: (Class[_], String) => Option[Any]) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
case object ExistentialType extends GenericSurface

Attributes

Supertypes
trait Singleton
trait Product
trait Mirror
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
Self type
class GenericSurface(val rawType: Class[_], val typeArgs: Seq[Surface], val params: Seq[Parameter], val objectFactory: Option[ObjectFactory]) extends Surface

Base class for generic surfaces with type args

Base class for generic surfaces with type args

Attributes

Supertypes
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
class Alias
object AnyRefSurface.type
class ArraySurface
class EnumSurface
object ExistentialType.type
object BigInt.type
object BigInteger.type
object Boolean.type
object Byte.type
object Char.type
object Double.type
object Float.type
object Int.type
object Long.type
object Short.type
object String.type
object Unit.type
class TupleSurface
Show all
case class HigherKindedTypeSurface(name: String, fullName: String, ref: Surface, typeArgs: Seq[Surface]) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
case class JavaEnumSurface(rawType: Class[_]) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
case class LazySurface(rawType: Class[_], fullName: String) extends Surface

Surface placeholder for supporting recursive types

Surface placeholder for supporting recursive types

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
trait MethodParameter extends Parameter

Attributes

Companion
object
Supertypes
trait Parameter
trait Serializable
class Object
trait Matchable
class Any
Show all
Known subtypes

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
case class MethodRef(owner: Class[_], name: String, paramTypes: Seq[Class[_]], isConstructor: Boolean)

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

Attributes

Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
trait ObjectFactory extends Serializable

Attributes

Companion
object
Supertypes
trait Serializable
class Object
trait Matchable
class Any
object ObjectFactory

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
case class OptionSurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
trait Parameter extends ParameterBase

Attributes

Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
sealed trait ParameterBase extends Serializable

Attributes

Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
object Primitive

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type
Primitive.type
case class RecordParameter(index: Int, name: String, surface: Surface, isRequired: Boolean, isSecret: Boolean, defaultValue: Option[Any]) extends Parameter

Attributes

Supertypes
trait Product
trait Equals
trait Parameter
trait Serializable
class Object
trait Matchable
class Any
Show all
case class RecordSurface(name: String, fullName: String, rawType: Class[_], typeArgs: Seq[Surface], params: Seq[Parameter], isRequired: Boolean, isSecret: Boolean, isOption: Boolean, isPrimitive: Boolean, isSeq: Boolean, isArray: Boolean, isMap: Boolean, objectFactory: Option[ObjectFactory]) extends Surface

Surface for custom record types

Surface for custom record types

Attributes

Companion
object
Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
object RecordSurface

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class StaticMethodParameter(method: MethodRef, index: Int, name: String, isRequired: Boolean, isSecret: Boolean, surface: Surface, defaultValue: Option[Any], accessor: Option[Any => Any], methodArgAccessor: Option[Any => Any]) extends MethodParameter

Parameters of a Surface. Renamed from StdMethodParameter to StaticMethodParameter for binary compatibility

Parameters of a Surface. Renamed from StdMethodParameter to StaticMethodParameter for binary compatibility

Attributes

Supertypes
trait Product
trait Equals
trait Parameter
trait Serializable
class Object
trait Matchable
class Any
Show all
trait Surface extends Serializable

Note: This interface is the same with scala-2 Surface interface, but Scala compiler requires defining Surface object in the same file, so this interface is copied.

Note: This interface is the same with scala-2 Surface interface, but Scala compiler requires defining Surface object in the same file, so this interface is copied.

Attributes

Companion
object
Supertypes
trait Serializable
class Object
trait Matchable
class Any
Known subtypes
class Alias
object AnyRefSurface.type
class ArraySurface
class EnumSurface
object ExistentialType.type
object BigInt.type
object BigInteger.type
object Boolean.type
object Byte.type
object Char.type
object Double.type
object Float.type
object Int.type
object Long.type
object Short.type
object String.type
object Unit.type
class TupleSurface
class LazySurface
Show all
object Surface

Scala 3 implementation of Surface

Scala 3 implementation of Surface

Attributes

Companion
trait
Supertypes
class Object
trait Matchable
class Any
Self type
Surface.type
case class TaggedSurface(base: Surface, tag: Surface) extends Surface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
case class TupleSurface(rawType: Class[_], typeArgs: Seq[Surface]) extends GenericSurface

Attributes

Supertypes
trait Product
trait Equals
trait Surface
trait Serializable
class Object
trait Matchable
class Any
Show all
trait Union

Union types

Union types

Attributes

Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Union2[A, B]
trait Union3[A, B, C]
trait Union2[A, B] extends Union

Attributes

Supertypes
trait Union
class Object
trait Matchable
class Any
trait Union3[A, B, C] extends Union

Attributes

Supertypes
trait Union
class Object
trait Matchable
class Any
object Zero extends LogSupport

Create a default instance (zero) from Surface

Create a default instance (zero) from Surface

Attributes

Supertypes
trait LogSupport
trait LazyLogger
trait LoggingMethods
trait Serializable
class Object
trait Matchable
class Any
Show all
Self type
Zero.type

Value members

Concrete methods

def getCached(fullName: String): Surface
def newCacheMap[A, B]: Map[A, B]

Concrete fields

val methodSurfaceCache: Map[String, Seq[MethodSurface]]
val surfaceCache: Map[String, Surface]