Class/Object

doobie.util.meta

Meta

Related Docs: object Meta | package meta

Permalink

sealed abstract class Meta[A] extends AnyRef

Metadata defining the column-level mapping to and from Scala type A. A given Scala type might be read from or written to columns with a variety of JDBC and/or vendor-specific types, depending on supported coercions and luck.

Reading and writing values to JDBC is asymmetric with respect to null, is complicated by unboxed types, and is not consistent with idiomatic Scala; so some discussion is required. Scala values should never be null. Setting a NULL JDBC value is accomplished via the setNull operation. Similarly when getting a JDBC value we must subsequently ask .wasNull on the JDBC resource and decide how to handle the value. The Atom typeclass takes care of mapping nullable values to Option so these issues should not be a concern for casual users.

Annotations
@implicitNotFound( ... )
Source
meta.scala
Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Meta
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def fold[B](f: (BasicMeta[A]) ⇒ B, g: (AdvancedMeta[A]) ⇒ B): B

    Permalink

    Switch on the flavor of this Meta.

  2. abstract def jdbcSource: NonEmptyList[JdbcType]

    Permalink

    Source JDBC types from which values of type A can be read.

  3. abstract def jdbcTarget: NonEmptyList[JdbcType]

    Permalink

    Destination JDBC types to which values of type A can be written.

  4. abstract def scalaType: String

    Permalink

    Name of the Scala type, for diagnostic purposes.

    Name of the Scala type, for diagnostic purposes. Smart constructors require a TypeTag to guarantee this value is correct.

  5. abstract def xmap[B](f: (A) ⇒ B, g: (B) ⇒ A)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[B]): Meta[B]

    Permalink

    Invariant map.

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. final def ne(arg0: AnyRef): Boolean

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

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

    Permalink
    Definition Classes
    AnyRef
  15. final def synchronized[T0](arg0: ⇒ T0): T0

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

    Permalink
    Definition Classes
    AnyRef → Any
  17. final def unsafeGetNonNullable(rs: ResultSet, n: Int): A

    Permalink
  18. final def unsafeGetNullable(rs: ResultSet, n: Int): Option[A]

    Permalink
  19. final def unsafeSetNonNullable(ps: PreparedStatement, n: Int, a: A): Unit

    Permalink
  20. final def unsafeSetNull(ps: PreparedStatement, n: Int): Unit

    Permalink
  21. final def unsafeSetNullable(ps: PreparedStatement, n: Int, oa: Option[A]): Unit

    Permalink
  22. final def unsafeUpdateNonNullable(rs: ResultSet, n: Int, a: A): Unit

    Permalink
  23. final def unsafeUpdateNullable(rs: ResultSet, n: Int, oa: Option[A]): Unit

    Permalink
  24. final def wait(): Unit

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

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

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def nxmap[B >: Null](f: (A) ⇒ B, g: (B) ⇒ A)(implicit arg0: scala.reflect.api.JavaUniverse.TypeTag[B], ev: <:<[Null, A]): Meta[B]

    Permalink

    Invariant map with null handling, for A, B >: Null; the functions f and g will never be passed a null value.

    Invariant map with null handling, for A, B >: Null; the functions f and g will never be passed a null value.

    Annotations
    @deprecated
    Deprecated

    (Since version 0.4.2) Null is no longer observable here; just use xmap.

Inherited from AnyRef

Inherited from Any

Ungrouped