intervalidus.mutable

Intervalidus's main traits and classes for defining mutable dimensional data, including versioned and multivalued data:

  • Base trait for all mutable dimensional data.
  • Classes defining mutable data in multidimensional intervals.

Attributes

Members list

Type members

Classlikes

Constructs data in multidimensional intervals.

Constructs data in multidimensional intervals.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
Data.type
class Data[V, D <: NonEmptyTuple] extends MutableBase[V, D]

Mutable dimensional data.

Mutable dimensional data.

Type parameters

D

the domain type -- DomainLike non-empty tuples.

V

the value type for valid data.

Attributes

Companion
object
Supertypes
trait MutableBase[V, D]
trait DimensionalBase[V, D]
trait PartialFunction[D, V]
trait D => V
class Object
trait Matchable
class Any
Show all

Constructs multi-data in multidimensional intervals.

Constructs multi-data in multidimensional intervals.

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
DataMulti.type
class DataMulti[V, D <: NonEmptyTuple] extends MutableBase[Set[V], D], DimensionalMultiBase[V, D]

Mutable, multivalued dimensional data.

Mutable, multivalued dimensional data.

Data may have multiple values valid in different intervals of arbitrary dimensions, conceptually similar to a multimap. For example, one may want to represent when the data are valid in time and over certain versions, or in two dimensions of time, simultaneously. When queried, values are returned as a set. The standard mutation methods operate on these sets of values. There are also add and remove methods allow mutation of individual values across intervals, and a concat method for combining two structures (a merge where overlaps are concatenated).

Type parameters

D

the domain type -- DomainLike non-empty tuples.

V

the value type for valid data.

Attributes

Companion
object
Supertypes
trait DimensionalMultiBase[V, D]
trait MutableBase[Set[V], D]
trait DimensionalBase[Set[V], D]
trait PartialFunction[D, Set[V]]
trait D => Set[V]
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
Supertypes
class Object
trait Matchable
class Any
Self type
class DataVersioned[V, D <: NonEmptyTuple](initialData: Iterable[ValidData[V, Versioned[D]]], initialVersion: VersionDomainValue, withCurrentVersion: Option[VersionDomain])(implicit evidence$1: DomainLike[D], x$4: Experimental, x$5: DomainLike[Versioned[D]]) extends DimensionalVersionedBase[V, D]

Immutable versioned dimensional data in any dimension.

Immutable versioned dimensional data in any dimension.

Interface is similar to Data, but it operates on an underlying mutable.Data using an extra integer-valued head dimension to version data. One use case would be versioned data that are valid in two dimensions of time, so the underlying data actually vary in terms of version and two dimensions of time (three dimensions total). Most methods require some generic version selection criteria rather than specific integer intervals, therefore this does not extend DimensionalBase.

The "current" version is managed as state (a var). Versioning also separates notions of approved vs. unapproved data (unapproved data are pushed up to start at version maxValue).

When getting data, by default, we return "current" version data (a.k.a., approved). When updating data, by default, we don't rewrite history, so mutations start with the "current" version too.

Type parameters

D

the domain type for intervals in the public interface -- DomainLike non-empty tuples.

V

the value type for valid data.

Attributes

Note

Updates starting with "current" also update unapproved changes (since intervalFrom goes to the Top).

Companion
object
Supertypes
trait PartialFunction[Versioned[D], V]
trait (Versioned[D]) => V
class Object
trait Matchable
class Any
Show all
trait MutableBase[V, D <: NonEmptyTuple](implicit evidence$1: DomainLike[D], x$1: Experimental) extends DimensionalBase[V, D]

Mutable dimensional data.

Mutable dimensional data.

Type parameters

D

the domain type -- DomainLike non-empty tuples.

V

the value type for valid data.

Attributes

Supertypes
trait DimensionalBase[V, D]
trait PartialFunction[D, V]
trait D => V
class Object
trait Matchable
class Any
Show all
Known subtypes
class Data[V, D]
class DataMulti[V, D]