DimensionalValidator

Dimensional instance validator. It wraps a taxonomy as TaxonomyApi instance.

Dimensional instance validator. It wraps a taxonomy as TaxonomyApi instance.

Instances of this class are expensive to create, and should be created only once per DTS and then retained in memory.

This class is most useful if the taxonomy from which it is instantiated is known to be XBRL Core and Dimensions valid.

This class does not offer any schema validation queries, so typed dimension validation queries miss the schema validation part for typed dimension members.

Authors

Chris de Vreeze

Companion
object
class Object
trait Matchable
class Any

Value members

Concrete methods

def validateDimensionalContext(dimensionalContext: DimensionalContext): Try[Unit]

Validates the dimensional context in isolation.

Validates the dimensional context in isolation.

def validateDimensionally(itemFact: ItemFact, instance: XbrlInstance): Try[Boolean]

Validates the given item fact in the given XBRL instance dimensionally. It invokes the equally named validation method taking the fact's concept as first argument and its XBRL context converted to a DimensionalContext as second argument.

Validates the given item fact in the given XBRL instance dimensionally. It invokes the equally named validation method taking the fact's concept as first argument and its XBRL context converted to a DimensionalContext as second argument.

def validateDimensionally(concept: EName, dimensionalContext: DimensionalContext): Try[Boolean]

Validates the given concept and dimensional context dimensionally. Validation does not include schema validation for typed dimension members.

Validates the given concept and dimensional context dimensionally. Validation does not include schema validation for typed dimension members.

This method does not validate the dimensional context itself, isolated from the concept. That is, it does not call method validateDimensionalContext.

def validateDimensionallyAsIfForAllRelationship(dimensionalContext: DimensionalContext, hasHypercube: HasHypercubeRelationship): Try[Boolean]
def validateDimensionallyForElr(dimensionalContext: DimensionalContext, hasHypercubeElr: String, ownOrInheritedPrimaries: Set[EName]): Try[Boolean]
def validateDimensionallyForHasHypercube(dimensionalContext: DimensionalContext, hasHypercube: HasHypercubeRelationship): Try[Boolean]
def validateExplicitDimensionValue(dimension: EName, dimensionalContextElement: DimensionalContextElement, dimensionDomains: IndexedSeq[DimensionDomain]): Boolean

Validate a dimension value (possibly default) against the effective domain of the dimension

Validate a dimension value (possibly default) against the effective domain of the dimension

Concrete fields

val dimensionDefaults: Map[EName, EName]
val dimensionDomainsByElrAndDimension: Map[String, Map[EName, IndexedSeq[DimensionDomain]]]
val hasHypercubeInheritanceOrSelf: Map[EName, Map[String, Set[EName]]]
val hasHypercubesByElrAndPrimary: Map[String, Map[EName, IndexedSeq[HasHypercubeRelationship]]]
val hypercubeDimensionsByElrAndHypercube: Map[String, Map[EName, IndexedSeq[HypercubeDimensionRelationship]]]