macro class mprops extends Annotation with StaticAnnotation
macro annotation to generate a inner object props
for your PType
for
you. Recursive members of the type P
in PType[P]
are mirrored in a
structure of nested objects with type Prop[P, A](path)
for appropriate
values A
and path
.
- case classes are traversed according to the parameters of their primary
constructor
- collection properties (Options
, Sets
, and Lists
) are skipped
- traits are traversed according to the abstract public vals they define.
the traits themselves, however, are not mirrored as a Prop[P, A]
NOTE: this traversal process will collect all valid properties for your PType
.
but be aware that the traversal can collect properties that are not actually
valid. for example, it will freely traverse case class elements that appear
to be persistent components, but are not included in your ModelType. it
will also traverse persistent components that are otherwise illegal, such as
those whose primary constructor has more than one parameter list. in all
these cases, the property created by this macro will cause an exception to be
thrown on model type construction. but all these cases, which represent a
malformed domain model, would have otherwise produced exceptions on model type
construction.
- Annotations
- @compileTimeOnly( ... )
- Source
- mprops.scala
- Alphabetic
- By Inheritance
- mprops
- StaticAnnotation
- Annotation
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new mprops()
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (mprops, B)
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def ensuring(cond: (mprops) ⇒ Boolean, msg: ⇒ Any): mprops
- def ensuring(cond: (mprops) ⇒ Boolean): mprops
- def ensuring(cond: Boolean, msg: ⇒ Any): mprops
- def ensuring(cond: Boolean): mprops
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- macro def macroTransform(annottees: Any*): Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
- def →[B](y: B): (mprops, B)