Trait

com.snowplowanalytics.iglu.core.typeclasses

AttachSchemaKey

Related Doc: package typeclasses

Permalink

trait AttachSchemaKey[E] extends ExtractSchemaKey[E]

This type class can be instantiated for any type E which after attaching SchemaKey to it will remain same E (like Self-describing JSON - same JValue before and after).

Unlike ExtractSchemaKey this type class makes possible also to attach description to entity, not just extract it.

Instance of this type class also need to decide *how* to attach description to entity as for entities of same type SchemaKey could be attached differently. For e.g. schema key for Self-describing JSON data and self key for JSON Schema, so different instances should be written for different purposes.

This particularly useful for apps creating, sending or storing Self-describing data (like trackers), or in other words to *attach* description to data

E

entity type, mostly intended for various JSON ADTs, like Json4s, Jackson, circe, Argonaut etc, but also can be anything that can bear reference to its description and at the same time remain same type

Linear Supertypes
ExtractSchemaKey[E], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AttachSchemaKey
  2. ExtractSchemaKey
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def attachSchemaKey(schemaKey: SchemaKey, entity: E): E

    Permalink

    Attach (merge-in) SchemaKey into entity of type E

    Attach (merge-in) SchemaKey into entity of type E

    schemaKey

    Schema description or reference to it

    entity

    some entity that can be Self-described

    returns

    updated entity with attached SchemaKey

  2. abstract def extractSchemaKey(entity: E): Option[SchemaKey]

    Permalink

    Try to extract SchemaKey from entity

    Try to extract SchemaKey from entity

    Definition Classes
    ExtractSchemaKey

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 wait(): Unit

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

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

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

Inherited from ExtractSchemaKey[E]

Inherited from AnyRef

Inherited from Any

Ungrouped