com.eharmony.aloha.dataset

RowCreatorProducer

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

Type Members

  1. abstract type JsonType

    Type of parsed JSON object.

Abstract Value Members

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

    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.

    returns

  2. abstract def name: String

    Name of this producer.

    Name of this producer.

    returns

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

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

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

    json
    returns

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 AnyRef

Inherited from Any

Ungrouped