wvlet.airframe.surface

Type members

Classlikes

case class Alias(name: String, fullName: String, ref: Surface) extends GenericSurface
case object AnyRefSurface extends GenericSurface
case class ArraySurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface
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") 
Companion:
class
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.)

Companion:
object
case class ClassMethodSurface(mod: Int, owner: Surface, name: String, returnType: Surface, args: Seq[MethodParameter], methodCaller: Option[(Any, Seq[Any]) => Any]) extends MethodSurface
case class EnumSurface(rawType: Class[_], stringExtractor: (Class[_], String) => Option[Any]) extends GenericSurface
case object ExistentialType extends GenericSurface
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

case class HigherKindedTypeSurface(name: String, fullName: String, ref: Surface, typeArgs: Seq[Surface]) extends GenericSurface
case class JavaEnumSurface(rawType: Class[_]) extends GenericSurface
case class LazySurface(rawType: Class[_], fullName: String) extends Surface

Surface placeholder for supporting recursive types

Surface placeholder for supporting recursive types

case class MethodRef(owner: Class[_], name: String, paramTypes: Seq[Class[_]], isConstructor: Boolean)
trait ObjectFactory extends Serializable
case class OptionSurface(rawType: Class[_], elementSurface: Surface) extends GenericSurface
trait Parameter extends ParameterBase
sealed trait ParameterBase extends Serializable
object Primitive
case class RecordParameter(index: Int, name: String, surface: Surface, isRequired: Boolean, isSecret: Boolean, defaultValue: Option[Any]) extends Parameter
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

Companion:
object
Companion:
class
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

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.

Companion:
object
object Surface

Scala 3 implementation of Surface

Scala 3 implementation of Surface

Companion:
class
case class TaggedSurface(base: Surface, tag: Surface) extends Surface
case class TupleSurface(rawType: Class[_], typeArgs: Seq[Surface]) extends GenericSurface
trait Union

Union types

Union types

trait Union2[A, B] extends Union
trait Union3[A, B, C] extends Union
object Zero extends LogSupport

Create a default instance (zero) from Surface

Create a default instance (zero) from Surface

Value members

Concrete methods

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

Concrete fields

val surfaceCache: Map[String, Surface]