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 -- a non-empty tuple that is DomainLike.

V

the type of the value managed as 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. When queried, values are returned as a set. In addition to the standard methods that operate on these sets of values. there are methods that operate on individual set members. For example, addOne and removeOne allow mutation of individual values across intervals, and mergeOne combines two structures (a merge where overlaps are concatenated).

Type parameters

D

the domain type -- a non-empty tuple that is DomainLike.

V

the type of the value managed as 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

Constructs data in multidimensional intervals that are also versioned (hidden extra dimension).

Constructs data in multidimensional intervals that are also versioned (hidden extra dimension).

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, versionTimestamps: Map[VersionDomainValue, VersionMetadata], withCurrentVersion: Option[VersionDomainValue])(implicit evidence$1: DomainLike[D], x$5: Experimental, x$6: DomainLike[Versioned[D]], x$7: CurrentDateTime) extends DimensionalVersionedBase[V, D]

Mutable versioned dimensional data in any dimension.

Mutable versioned dimensional data in any dimension.

Interface is similar to Data, but it operates on an underlying 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). Most methods require some generic version selection criteria rather than specific integer intervals, therefore this does not extend Data.

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 -- a non-empty tuple that is DomainLike.

V

the type of the value managed as 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 -- a non-empty tuple that is DomainLike.

V

the type of the value managed as 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]