Trait

com.github.limansky.mongoquery.core

MongoQueryMacro

Related Doc: package core

Permalink

trait MongoQueryMacro extends AnyRef

Base macro implemenation without dependency to any MongoDB driver.

If you going to create MongoQuery implementation for your driver it a nice place to start to extend this trait.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MongoQueryMacro
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type DBType

    Permalink

    Type MongoDB documents representation.

Abstract Value Members

  1. abstract def createId(c: Context)(id: String): scala.reflect.macros.blackbox.Context.Expr[Any]

    Permalink

    Creates id value.

    Creates id value.

    c

    Scala macro context

    id

    40 character hex number represented as a string. The string is already validated, so it only required to wrap it into DB Id representation.

    returns

    created id.

  2. abstract def createNull(c: Context): scala.reflect.macros.blackbox.Context.Expr[Any]

    Permalink
  3. abstract def createObject(c: Context)(dbParts: List[(String, scala.reflect.macros.blackbox.Context.Expr[Any])]): scala.reflect.macros.blackbox.Context.Expr[DBType]

    Permalink

    Creates DB object from the List of parsed data.

    Creates DB object from the List of parsed data.

    c

    Scala macro context

    dbParts

    list of key/value pairs. The first parameter is a name of an object field, and the second one is an expression to be used as a value.

    returns

    created object.

  4. abstract def createRegex(c: Context)(expression: String, options: String): scala.reflect.macros.blackbox.Context.Expr[Any]

    Permalink

    Creates regex literal.

    Creates regex literal.

    c

    Scala macro context

    expression

    regular expression to be wrapped.

    options

    options for this expression.

    returns

    created regex.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  12. def mq_impl(c: Context)(args: scala.reflect.macros.blackbox.Context.Expr[Any]*): scala.reflect.macros.blackbox.Context.Expr[DBType]

    Permalink

    This is mq interpolator entry point.

  13. def mqt_impl[T](c: Context)(implicit arg0: scala.reflect.macros.blackbox.Context.WeakTypeTag[T]): scala.reflect.macros.blackbox.Context.Expr[DBType]

    Permalink

    This is mqt interpolator entry point.

  14. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  15. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  16. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. def parse(c: Context)(partsTrees: List[scala.reflect.macros.blackbox.Context.Tree]): Object

    Permalink

    Parses parts provided by interpolator context.

    Parses parts provided by interpolator context.

    c

    macro context

    partsTrees

    string parts to be parsed. The data is provided as a parts seprarated by substitutions. For example:

    val name = "John Doe"
    val age = 42
    mq"{ name : $$name, age: $$age }"

    In this example parts will be: "{ name: ", ", age: " and " }"

    Attributes
    protected
  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  19. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. def wrapObject(c: Context)(parts: List[(LValue, Any)], args: Iterator[scala.reflect.macros.blackbox.Context.Expr[_]]): scala.reflect.macros.blackbox.Context.Expr[DBType]

    Permalink

    Wraps object into DBType.

    Wraps object into DBType.

    Attributes
    protected
  24. def wrapValue(c: Context)(value: Any, args: Iterator[scala.reflect.macros.blackbox.Context.Expr[_]]): scala.reflect.macros.blackbox.Context.Expr[Any]

    Permalink

    Wraps values.

    Wraps values.

    This method is required to insert arguments between parts, wrap inlined ids, nested objects and lists.

    Attributes
    protected

Inherited from AnyRef

Inherited from Any

Ungrouped