Package

emblem

emblematic

Permalink

package emblematic

a collection of tools for describing collections of related data types in a generic and traversable way

Source
package.scala
Linear Supertypes
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. emblematic
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Emblem[A] extends Reflective[A] with Product with Serializable

    Permalink

    a reflective signature for a type.

    a reflective signature for a type. provides name information, properties, and a tool used to build new instances. the underlying type is treated as immutable, so each property provides a setter that returns a new instance. new instances can be built using a InstanceBuilder returned by method builder.

    A

    the type that this emblem reflects upon

  2. type EmblemPool = TypeKeyMap[Any, Emblem]

    Permalink

    a TypeKeyMap of emblems

  3. case class EmblemProp[A, B] extends ReflectiveProp[A, B] with Product with Serializable

    Permalink

    an emblem property.

    an emblem property. the property belongs to an Emblem, has a name, and a getter and a setter. because the emblem is treated as an immutable object, the setter returns a new instance.

  4. case class Emblematic(emblems: EmblemPool = EmblemPool.empty, unions: UnionPool = UnionPool.empty) extends Product with Serializable

    Permalink

    describes a collection of types used in composite data structures.

    describes a collection of types used in composite data structures. these data structures can contain all of the following types:

    - all of the basic types - supported collections. currently Option, Set, and Map - case classes represented in the collection of emblems - traits represented in the collection of unions

    emblems

    the emblems to use in the emblematic. defaults to empty

    unions

    the unions to use in the emblematic. defaults to empty

  5. trait EmblematicPropPath[A, B] extends AnyRef

    Permalink

    a property path that recurses through an emblem tree to a specific leaf

  6. type Function0[A] = () ⇒ A

    Permalink

    a no-arg function with return type A

  7. trait Reflective[A] extends AnyRef

    Permalink

    a prototype for Emblem and Union

  8. trait ReflectiveProp[A, B] extends AnyRef

    Permalink

    a property for an Emblem or a Union.

    a property for an Emblem or a Union. the property has a name and a getter. unlike EmblemProp, there is no setter here, because there is no generic way to produce a new instance of a Union type.

    A

    the type that has the property

    B

    the type of the property value

  9. case class Union[A](typeKey: TypeKey[A], constituents: Set[Emblem[_ <: A]], props: Seq[UnionProp[A, _]], lookup: UnionConstituentLookup[A]) extends Reflective[A] with Product with Serializable

    Permalink

    describes a supertype that can be resolved down in to other types found in an Emblematic.

    describes a supertype that can be resolved down in to other types found in an Emblematic.

    currently, discrimination between the constituent types depends on the simple name of the type. this may lead to problems if two constituent types have the same simple name, if the types involved are companion objects, or if the types are otherwise complex types, such as Foo with Bar. for now, it's best to declare your constituent types in discrete classes. if this ever becomes a problematic limitation, we will look into making this more robust.

    A

    the supertype

    typeKey

    the type key for the supertype

    constituents

    emblems for the constituent types

    props

    the union properties

  10. type UnionPool = TypeKeyMap[Any, Union]

    Permalink

    A TypeKeyMap of Any to Union

  11. case class UnionProp[A, B] extends ReflectiveProp[A, B] with Product with Serializable

    Permalink

    an union property.

    an union property. the property belongs to an Union, has a name, and a getter and a setter.

Value Members

  1. object Emblem extends Serializable

    Permalink
  2. object EmblemPool

    Permalink
  3. object Emblematic extends Serializable

    Permalink
  4. object EmblematicPropPath

    Permalink

    an EmblematicPropPath factory

  5. object Union extends Serializable

    Permalink
  6. object UnionPool

    Permalink
  7. object basicTypes

    Permalink

    the basic types are the leaf-level types that emblem knows how to process.

    the basic types are the leaf-level types that emblem knows how to process. currently, the following basic type are supported:

    • Boolean
    • Char
    • org.joda.time.DateTime
    • Double
    • Float
    • Int
    • Long
    • String
  8. package traversors

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped