final class Macros extends JsonApiWriters with JsonApiReaders
Contains macros used to automatically create JsonApiWriter and JsonApiFormat instances from a case class for http://jsonapi.org format.
The JsonApiFormat it self is not yet complete. The read side returns Nothing (???) and thus will crash with scala.NotImplementedError
In the case class you have to provide 2 implicits after of which you can create an instance of the JsonApiFormat or JsonApiWriter. Example for a case class called Individual.
implicit val individualResourceType: ResourceType[Individual] = "individuals" implicit val individualPathTo: PathTo[Individual] = new PathTo[Individual] { private[this] val root = Path("/individuals") override final def self(id: String): Uri = root / id } // After these you can generate the format like this implicit val individualJsonFormat: JsonApiFormat[Individual] = jsonApiFormat[Individual]
- Annotations
- @compileTimeOnly("Macros can only be used at compile-time")
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- Macros
- JsonApiReaders
- JsonApiWriters
- JsonApiCommon
- Tools
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Instance Constructors
- new Macros(c: Context)
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val c: Context
- def camelToDashes(name: String): String
- Definition Classes
- JsonApiCommon
- def caseClassFields(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.Universe.TermSymbol]
- Definition Classes
- JsonApiCommon
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def coproductPattern(n: Int, name: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- Tools
- def coproductPatterns(nTypes: Int, name: scala.reflect.macros.Universe.TermName): Seq[scala.reflect.macros.blackbox.Context.Tree]
- Definition Classes
- Tools
- def coproductTypes(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.blackbox.Context.Type]
- Definition Classes
- Tools
- def createIncludes[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
- def createWriter(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiWriters
- def emptyForIterableType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiCommon
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def includeAllowed(t: scala.reflect.macros.blackbox.Context.Type, includeParam: scala.reflect.macros.Universe.TermName, incMap: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiWriters
- def includedWriter(t: scala.reflect.macros.blackbox.Context.Type, objName: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiWriters
- def includesMap(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiWriters
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def jsonApiFormatWithNoNameManglingImpl[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
- def jsonApiWriterWithNoNameManglingImpl[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
- val jsonOptionType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val jsonOptionalPolyToManyType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val jsonOptionalPolyToOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val jsonOptionalToManyType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val jsonOptionalToOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- val optionType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val optionalPolyToOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val optionalToOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- def partitionRelations(t: scala.reflect.macros.blackbox.Context.Type, fields: List[scala.reflect.macros.Universe.TermSymbol]): (List[scala.reflect.macros.Universe.TermSymbol], List[scala.reflect.macros.Universe.TermSymbol])
- Definition Classes
- JsonApiCommon
- def partitionedCaseClassFields(t: scala.reflect.macros.blackbox.Context.Type): (List[scala.reflect.macros.Universe.TermSymbol], List[scala.reflect.macros.Universe.TermSymbol])
- Definition Classes
- JsonApiCommon
- val polyToManyType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val polyToOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- def primaryDataWriter(t: scala.reflect.macros.blackbox.Context.Type, objName: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiWriters
- def reader(t: scala.reflect.macros.blackbox.Context.Type, primaryJsonTerm: scala.reflect.macros.Universe.TermName, includedJsonTerm: scala.reflect.macros.Universe.TermName, includePaths: scala.reflect.macros.Universe.TermName, includePath: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiReaders
- def relationFields(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.Universe.TermSymbol]
- Definition Classes
- JsonApiCommon
- def relationshipTypes(t: scala.reflect.macros.blackbox.Context.Type): List[(scala.reflect.macros.Universe.Type, String)]
- Definition Classes
- JsonApiCommon
- def resolveContainedAttributeType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Type
- Definition Classes
- JsonApiCommon
- def resolveContainedType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Type
- Definition Classes
- JsonApiCommon
- def resourceType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
- Definition Classes
- JsonApiCommon
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- val toManyType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- val toOneType: scala.reflect.macros.Universe.Type
- Definition Classes
- JsonApiCommon
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)