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
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 PartialFunction[D, V]trait D => Vclass Objecttrait Matchableclass AnyShow all
Constructs multi-data in multidimensional intervals.
Constructs multi-data in multidimensional intervals.
Attributes
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 PartialFunction[D, Set[V]]trait D => Set[V]class Objecttrait Matchableclass AnyShow 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
- Self type
-
DataVersioned.type
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
-
class Objecttrait Matchableclass AnyShow all
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 PartialFunction[D, V]trait D => Vclass Objecttrait Matchableclass AnyShow all
- Known subtypes