DimensionalRelationshipContainerApi

Purely abstract trait offering a dimensional relationship query API.

Purely abstract trait offering a dimensional relationship query API.

Implementations may be strict or lenient in enforced requirements on the relationship container.

Authors

Chris de Vreeze

class Object
trait Matchable
class Any

Value members

Abstract methods

Finds all inherited has-hypercubes per concept that pass the predicate. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes per concept that pass the predicate. See section 2.6.1 of the XBRL Dimensions specification.

This is potentially an expensive bulk version of method findAllInheritedHasHypercubes, and should typically be called as few times as possible.

Finds all own or inherited has-hypercubes per concept that pass the predicate. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes per concept that pass the predicate. See section 2.6.1 of the XBRL Dimensions specification.

This is potentially an expensive bulk version of method findAllOwnOrInheritedHasHypercubes, and should typically be called as few times as possible.

Finds all inherited has-hypercubes per concept. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes per concept. See section 2.6.1 of the XBRL Dimensions specification.

This is an expensive bulk version of method findAllInheritedHasHypercubes, and should be called as few times as possible.

This function is equivalent to:

computeFilteredHasHypercubeInheritance(_ => true)
def computeHasHypercubeInheritanceForElr(elr: String): Map[EName, IndexedSeq[HasHypercubeRelationship]]

Finds all inherited has-hypercubes per concept for the given ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes per concept for the given ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is a rather expensive bulk version of method findAllInheritedHasHypercubes, and should be called as few times as possible.

This function is equivalent to:

computeFilteredHasHypercubeInheritance(_.elr == elr)
def computeHasHypercubeInheritanceForElrReturningPrimaries(elr: String): Map[EName, Set[EName]]

Finds all inherited has-hypercubes per concept, for the given ELR, returning Sets of all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes per concept, for the given ELR, returning Sets of all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is a rather expensive bulk version of method findAllInheritedHasHypercubesAsElrToPrimariesMap, and should be called as few times as possible.

Finds all own or inherited has-hypercubes per concept. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes per concept. See section 2.6.1 of the XBRL Dimensions specification.

This is an expensive bulk version of method findAllOwnOrInheritedHasHypercubes, and should be called as few times as possible.

This function is equivalent to:

computeFilteredHasHypercubeInheritanceOrSelf(_ => true)
def computeHasHypercubeInheritanceOrSelfForElr(elr: String): Map[EName, IndexedSeq[HasHypercubeRelationship]]

Finds all own or inherited has-hypercubes per concept for the given ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes per concept for the given ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is a rather expensive bulk version of method findAllOwnOrInheritedHasHypercubes, and should be called as few times as possible.

This function is equivalent to:

computeFilteredHasHypercubeInheritanceOrSelf(_.elr == elr)
def computeHasHypercubeInheritanceOrSelfForElrReturningPrimaries(elr: String): Map[EName, Set[EName]]

Finds all own or inherited has-hypercubes per concept, for the given ELR, returning Sets of all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes per concept, for the given ELR, returning Sets of all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is a rather expensive bulk version of method findAllOwnOrInheritedHasHypercubesAsElrToPrimariesMap, and should be called as few times as possible.

def computeHasHypercubeInheritanceOrSelfReturningElrToPrimariesMaps: Map[EName, Map[String, Set[EName]]]

Finds all own or inherited has-hypercubes per concept returning Maps from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes per concept returning Maps from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is an expensive bulk version of method findAllOwnOrInheritedHasHypercubesAsElrToPrimariesMap, and should be called as few times as possible.

def computeHasHypercubeInheritanceReturningElrToPrimariesMaps: Map[EName, Map[String, Set[EName]]]

Finds all inherited has-hypercubes per concept returning Maps from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes per concept returning Maps from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

This is an expensive bulk version of method findAllInheritedHasHypercubesAsElrToPrimariesMap, and should be called as few times as possible.

def filterDimensionalRelationshipsOfType[A <: DimensionalRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]

Filters the consecutive (!) dimension-domain-or-domain-member relationship paths that are incoming to the given concept. Only relationship paths for which all (non-empty) "tails" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) dimension-domain-or-domain-member relationship paths that are incoming to the given concept. Only relationship paths for which all (non-empty) "tails" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) domain-member relationship paths that are incoming to the given concept. Only relationship paths for which all (non-empty) "tails" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) domain-member relationship paths that are incoming to the given concept. Only relationship paths for which all (non-empty) "tails" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

def filterIncomingDomainAwareRelationships(targetConcept: EName)(p: DomainAwareRelationship => Boolean): IndexedSeq[DomainAwareRelationship]

Filters "domain-aware" relationships that are incoming to the given concept.

Filters "domain-aware" relationships that are incoming to the given concept.

Filters domain-member relationships that are incoming to the given concept.

Filters domain-member relationships that are incoming to the given concept.

Filters has-hypercube relationships that are incoming to the given (hypercube) concept.

Filters has-hypercube relationships that are incoming to the given (hypercube) concept.

Filters hypercube-dimension relationships that are incoming to the given (dimension) concept.

Filters hypercube-dimension relationships that are incoming to the given (dimension) concept.

Filters the consecutive (!) dimension-domain-or-domain-member relationship paths that are outgoing from the given concept. Only relationship paths for which all (non-empty) "inits" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) dimension-domain-or-domain-member relationship paths that are outgoing from the given concept. Only relationship paths for which all (non-empty) "inits" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) domain-member relationship paths that are outgoing from the given concept. Only relationship paths for which all (non-empty) "inits" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters the consecutive (!) domain-member relationship paths that are outgoing from the given concept. Only relationship paths for which all (non-empty) "inits" pass the predicate are accepted by the filter! The relationship paths are as long as possible, but on encountering a cycle in a path it stops growing beyond a certain path length.

Filters dimension-default relationships that are outgoing from the given concept.

Filters dimension-default relationships that are outgoing from the given concept.

def filterOutgoingDimensionDefaultRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[DimensionDefaultRelationship]

Filters dimension-default relationships that are outgoing from the given concept on the given ELR.

Filters dimension-default relationships that are outgoing from the given concept on the given ELR.

Filters dimension-domain relationships that are outgoing from the given concept.

Filters dimension-domain relationships that are outgoing from the given concept.

def filterOutgoingDimensionDomainRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[DimensionDomainRelationship]

Filters dimension-domain relationships that are outgoing from the given concept on the given ELR.

Filters dimension-domain relationships that are outgoing from the given concept on the given ELR.

Filters domain-member relationships that are outgoing from the given concept.

Filters domain-member relationships that are outgoing from the given concept.

def filterOutgoingDomainMemberRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[DomainMemberRelationship]

Filters domain-member relationships that are outgoing from the given concept on the given ELR.

Filters domain-member relationships that are outgoing from the given concept on the given ELR.

Filters has-hypercube relationships that are outgoing from the given concept.

Filters has-hypercube relationships that are outgoing from the given concept.

def filterOutgoingHasHypercubeRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[HasHypercubeRelationship]

Filters has-hypercube relationships that are outgoing from the given concept on the given ELR.

Filters has-hypercube relationships that are outgoing from the given concept on the given ELR.

Filters hypercube-dimension relationships that are outgoing from the given concept.

Filters hypercube-dimension relationships that are outgoing from the given concept.

def filterOutgoingHypercubeDimensionRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[HypercubeDimensionRelationship]

Filters hypercube-dimension relationships that are outgoing from the given concept on the given ELR.

Filters hypercube-dimension relationships that are outgoing from the given concept on the given ELR.

Finds all consecutive dimension-domain relationships.

Finds all consecutive dimension-domain relationships.

This method is shorthand for:

filterOutgoingDimensionDomainRelationships(relationship.targetConceptEName) { rel =>
 relationship.isFollowedBy(rel)
}

Finds all consecutive domain-member relationships.

Finds all consecutive domain-member relationships.

This method is shorthand for:

filterOutgoingDomainMemberRelationships(relationship.targetConceptEName) { rel =>
 relationship.isFollowedBy(rel)
}

Finds all consecutive hypercube-dimension relationships.

Finds all consecutive hypercube-dimension relationships.

This method is shorthand for:

filterOutgoingHypercubeDimensionRelationships(relationship.targetConceptEName) { rel =>
 relationship.isFollowedBy(rel)
}
def findAllDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]

Finds all (explicit) dimension members for the given has-hypercube relationship.

Finds all (explicit) dimension members for the given has-hypercube relationship.

def findAllDimensionalRelationshipsOfType[A <: DimensionalRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]

Returns filterIncomingConsecutiveDomainAwareRelationshipPaths(targetConcept)(_ => true).

Returns filterIncomingConsecutiveDomainAwareRelationshipPaths(targetConcept)(_ => true).

Returns filterIncomingConsecutiveDomainMemberRelationshipPaths(targetConcept)(_ => true).

Returns filterIncomingConsecutiveDomainMemberRelationshipPaths(targetConcept)(_ => true).

Finds all "domain-aware" relationships that are incoming to the given concept.

Finds all "domain-aware" relationships that are incoming to the given concept.

Finds all domain-member relationships that are incoming to the given concept.

Finds all domain-member relationships that are incoming to the given concept.

Finds all has-hypercube relationships that are incoming to the given (hypercube) concept.

Finds all has-hypercube relationships that are incoming to the given (hypercube) concept.

Finds all hypercube-dimension relationships that are incoming to the given (dimension) concept.

Finds all hypercube-dimension relationships that are incoming to the given (dimension) concept.

Finds all inherited has-hypercubes. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes. See section 2.6.1 of the XBRL Dimensions specification.

def findAllInheritedHasHypercubesAsElrToPrimariesMap(concept: EName): Map[String, Set[EName]]

Finds all inherited has-hypercubes as a Map from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all inherited has-hypercubes as a Map from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

def findAllMembers(domain: EName, elr: String): Set[EName]

Finds all members in the given domain, for the given ELR. This method is more general than the corresponding findAllMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of (allowed or disallowed) enumeration values.

Finds all members in the given domain, for the given ELR. This method is more general than the corresponding findAllMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of (allowed or disallowed) enumeration values.

def findAllMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]

Finds all members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

Finds all members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

This method is equivalent to but more user-friendly than:

findAllMembers(domain, targetElr)

where targetElr is the target ELR of the dimension-domain relationship.

def findAllMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]

Finds all members in the given effective domain of the given dimension.

Finds all members in the given effective domain of the given dimension.

def findAllNonUsableDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]

Finds all non-usable (explicit) dimension members for the given has-hypercube relationship.

Finds all non-usable (explicit) dimension members for the given has-hypercube relationship.

def findAllNonUsableMembers(domain: EName, elr: String, headUsable: Boolean): Set[EName]

Finds all non-usable members in the given domain, for the given ELR. This method is more general than the corresponding findAllNonUsableMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of disallowed enumeration values.

Finds all non-usable members in the given domain, for the given ELR. This method is more general than the corresponding findAllNonUsableMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of disallowed enumeration values.

def findAllNonUsableMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]

Finds all non-usable members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

Finds all non-usable members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

This method is equivalent to but more user-friendly than:

findAllNonUsableMembers(domain, targetElr, headUsable)

where headUsable is taken from the xbrldt:usable attribute on the dimension-domain relationship, and targetElr is the target ELR of the dimension-domain relationship.

def findAllNonUsableMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]

Finds all non-usable members in the given effective domain of the given dimension. If a member is usable in one dimension-domain but not usable in another one, it is considered not usable.

Finds all non-usable members in the given effective domain of the given dimension. If a member is usable in one dimension-domain but not usable in another one, it is considered not usable.

Returns filterOutgoingConsecutiveDomainAwareRelationshipPaths(sourceConcept)(_ => true).

Returns filterOutgoingConsecutiveDomainAwareRelationshipPaths(sourceConcept)(_ => true).

Returns filterOutgoingConsecutiveDomainMemberRelationshipPaths(sourceConcept)(_ => true).

Returns filterOutgoingConsecutiveDomainMemberRelationshipPaths(sourceConcept)(_ => true).

Finds all dimension-default relationships that are outgoing from the given concept.

Finds all dimension-default relationships that are outgoing from the given concept.

Finds all dimension-domain relationships that are outgoing from the given concept.

Finds all dimension-domain relationships that are outgoing from the given concept.

Finds all domain-member relationships that are outgoing from the given concept.

Finds all domain-member relationships that are outgoing from the given concept.

Finds all has-hypercube relationships that are outgoing from the given concept.

Finds all has-hypercube relationships that are outgoing from the given concept.

Finds all hypercube-dimension relationships that are outgoing from the given concept.

Finds all hypercube-dimension relationships that are outgoing from the given concept.

Finds all own or inherited has-hypercubes. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes. See section 2.6.1 of the XBRL Dimensions specification.

def findAllOwnOrInheritedHasHypercubesAsElrToPrimariesMap(concept: EName): Map[String, Set[EName]]

Finds all own or inherited has-hypercubes as a Map from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

Finds all own or inherited has-hypercubes as a Map from ELRs to all primaries that are source concepts of the has-hypercube relationships with that ELR. See section 2.6.1 of the XBRL Dimensions specification.

def findAllUsableDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]

Finds all usable (explicit) dimension members for the given has-hypercube relationship.

Finds all usable (explicit) dimension members for the given has-hypercube relationship.

def findAllUsableMembers(domain: EName, elr: String, headUsable: Boolean): Set[EName]

Finds all usable members in the given domain, for the given ELR. This method is more general than the corresponding findAllUsableMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of allowed enumeration values.

Finds all usable members in the given domain, for the given ELR. This method is more general than the corresponding findAllUsableMembers method that takes a dimension as first parameter. This method is also applicable to Extensible Enumerations 2.0, to find a domain of allowed enumeration values.

def findAllUsableMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]

Finds all usable members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

Finds all usable members in the given dimension-domain. There should be at most one dimension-domain relationship from the given dimension to the given domain, having the given ELR.

This method is equivalent to but more user-friendly than:

findAllUsableMembers(domain, targetElr, headUsable)

where headUsable is taken from the xbrldt:usable attribute on the dimension-domain relationship, and targetElr is the target ELR of the dimension-domain relationship.

def findAllUsableMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]

Finds all usable members in the given effective domain of the given dimension. If a member is usable in one dimension-domain but not usable in another one, it is considered not usable.

Finds all usable members in the given effective domain of the given dimension. If a member is usable in one dimension-domain but not usable in another one, it is considered not usable.