org.bdgenomics.adam.projections

FieldValue

trait FieldValue extends AnyRef

The FieldValue trait (and its sister abstract class, FieldEnumeration) are meant to help clean up the use of Projection when dealing with field enumeration classes like ADAMRecordField.

Projection is a class for turning fields from an Enumeration into a projected Avro Schema object.

In the old way of doing this, we used a "normal" Enumeration. Projection would receive a collection of Read.Value objects, and use their names (plus the Read.SCHEMA$ static field) to turn them into a Schema for ADAMRecords. This worked fine for Read, and not at all for generalizing to other Schemas over other field enumerations.

In the new system, we embed the Avro Schema object as an argument *in* each enumeration Value. We do this in two steps: (1) instead of ADAMRecordField (e.g.) extending Enumeration, it extends FieldEnumeration and provides the appropriate (static) Schema object as an argument. (2) instead of using the (final, non-overrideable) Value method within Enumeration to provide each enum value, it calls FieldEnumeration.SchemaValue instead, which embeds the corresponding Schema in each value.

Finally, Projection will extract the Schema value from the first FieldValue that is given to it and produce the corresponding (projected) Schema.

This means, of course, that Projection can't handle empty field lists -- but that was always going to be an error-filled edge-case anyway (why would you want to project to zero fields?)

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. FieldValue
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def schema: Schema

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