com.snowplowanalytics.iglu.core.typeclasses

AttachSchemaKey

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
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

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

    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]

    Try to extract SchemaKey from entity

    Try to extract SchemaKey from entity

    Definition Classes
    ExtractSchemaKey

Concrete Value Members

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

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

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

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

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

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

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

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

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

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

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

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

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

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

    Definition Classes
    AnyRef
  18. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from ExtractSchemaKey[E]

Inherited from AnyRef

Inherited from Any

Ungrouped