Trait

com.eharmony.aloha.dataset

RowCreatorProducer

Related Doc: package dataset

Permalink

trait RowCreatorProducer[A, +B, +Impl <: RowCreator[A, B]] extends AnyRef

RowCreatorProducer is used to create different kinds of RowCreator instances.

Classes that extend RowCreatorProducer should (try to) have only zero-argument constructors.

This is because RowCreator instances should ideally only be parametrized by the JSON specification. Otherwise, one JSON specification could produce non-equivalent RowCreator instances in different environments.

This statelessness is a design goal and should only be broken with good reason.

One of the reasons this rule will likely be broken is that things like context bounds on a type parameter to a RowCreatorProducer become constructor arguments. So if a RowCreatorProducer is parametrized by a type that requires a type class to decode the JSON representation, this rule would be broken.

Another example might be in training multi-label models. Whereas in binary classifiers the labels values are known automatically (because they are isomorphic to the set {true, false}), the label set isn't known a priori (because each problem codomain might be different). Therefore, we might ask for the set of labels to expect.

NOTE: com.eharmony.aloha.dataset.RowCreatorProducerTest will be used to control which RowCreatorProducers can accept parameters.

A

type of input passed to the RowCreator.

B

type of output returned from the RowCreator.

Impl

implementation of the RowCreator that is returned by the getRowCreator function.

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

Type Members

  1. abstract type JsonType

    Permalink

    Type of parsed JSON object.

Abstract Value Members

  1. abstract def getRowCreator(semantics: CompiledSemantics[A], jsonSpec: JsonType): Try[Impl]

    Permalink

    Attempt to produce a Spec.

    Attempt to produce a Spec.

    semantics

    semantics used to make sense of the features in the JsonSpec

    jsonSpec

    a JSON specification to transform into a RowCreator.

  2. abstract def name: String

    Permalink

    Name of this producer.

  3. abstract def parse(json: JsValue): Try[JsonType]

    Permalink

    Attempt to parse the JSON AST to an intermediate representation that is used

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 AnyRef

Inherited from Any

Ungrouped