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
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Macros
  2. JsonApiReaders
  3. JsonApiWriters
  4. JsonApiCommon
  5. Tools
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Macros(c: Context)

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val c: Context
    Definition Classes
    MacrosTools
  6. def camelToDashes(name: String): String
    Definition Classes
    JsonApiCommon
  7. def caseClassFields(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.Universe.TermSymbol]
    Definition Classes
    JsonApiCommon
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  9. def coproductPattern(n: Int, name: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    Tools
  10. def coproductPatterns(nTypes: Int, name: scala.reflect.macros.Universe.TermName): Seq[scala.reflect.macros.blackbox.Context.Tree]
    Definition Classes
    Tools
  11. def coproductTypes(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.blackbox.Context.Type]
    Definition Classes
    Tools
  12. def createIncludes[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
  13. def createWriter(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiWriters
  14. def emptyForIterableType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiCommon
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  19. 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
  20. def includedWriter(t: scala.reflect.macros.blackbox.Context.Type, objName: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiWriters
  21. def includesMap(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiWriters
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. def jsonApiFormatWithNoNameManglingImpl[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
  24. def jsonApiWriterWithNoNameManglingImpl[A](implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[A]): scala.reflect.macros.blackbox.Context.Tree
  25. val jsonOptionType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  26. val jsonOptionalPolyToManyType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  27. val jsonOptionalPolyToOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  28. val jsonOptionalToManyType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  29. val jsonOptionalToOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  30. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  31. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  32. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  33. val optionType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  34. val optionalPolyToOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  35. val optionalToOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  36. 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
  37. def partitionedCaseClassFields(t: scala.reflect.macros.blackbox.Context.Type): (List[scala.reflect.macros.Universe.TermSymbol], List[scala.reflect.macros.Universe.TermSymbol])
    Definition Classes
    JsonApiCommon
  38. val polyToManyType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  39. val polyToOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  40. def primaryDataWriter(t: scala.reflect.macros.blackbox.Context.Type, objName: scala.reflect.macros.Universe.TermName): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiWriters
  41. 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
  42. def relationFields(t: scala.reflect.macros.blackbox.Context.Type): List[scala.reflect.macros.Universe.TermSymbol]
    Definition Classes
    JsonApiCommon
  43. def relationshipTypes(t: scala.reflect.macros.blackbox.Context.Type): List[(scala.reflect.macros.Universe.Type, String)]
    Definition Classes
    JsonApiCommon
  44. def resolveContainedAttributeType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Type
    Definition Classes
    JsonApiCommon
  45. def resolveContainedType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Type
    Definition Classes
    JsonApiCommon
  46. def resourceType(t: scala.reflect.macros.blackbox.Context.Type): scala.reflect.macros.blackbox.Context.Tree
    Definition Classes
    JsonApiCommon
  47. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  48. val toManyType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  49. val toOneType: scala.reflect.macros.Universe.Type
    Definition Classes
    JsonApiCommon
  50. def toString(): String
    Definition Classes
    AnyRef → Any
  51. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  52. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  53. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from JsonApiReaders

Inherited from JsonApiWriters

Inherited from JsonApiCommon

Inherited from Tools

Inherited from AnyRef

Inherited from Any

Ungrouped