BasicTaxonomy

final class BasicTaxonomy extends TaxonomyLike

Basic implementation of a taxonomy that offers the TaxonomyApi query API. It does not enforce closure under DTS discovery rules, or uniqueness of "target expanded names" of concept declarations etc. It does not know anything about tables and formulas. It also does not know anything about networks of relationships.

Basic implementation of a taxonomy that offers the TaxonomyApi query API. It does not enforce closure under DTS discovery rules, or uniqueness of "target expanded names" of concept declarations etc. It does not know anything about tables and formulas. It also does not know anything about networks of relationships.

The passed relationships must be backed by XLink arcs in the underlying taxonomy, or else the instance is corrupt. This is not checked by this class.

This object is expensive to create (through the build method), primarily due to the mappings from source and target concepts to standard relationships. Looking up schema content by EName (or by URI for global element declarations) is also fast.

Authors

Chris de Vreeze

Companion
object

Value members

Concrete methods

def filteringDocumentUris(docUris: Set[URI]): BasicTaxonomy

Creates a "sub-taxonomy" in which only the given document URIs occur. It can be used for a specific entry point DTS, or to make query methods (not taking an EName) cheaper. In order to keep the same net substitution groups, they are passed as the extra substitution groups to the subset BasicTaxonomy.

Creates a "sub-taxonomy" in which only the given document URIs occur. It can be used for a specific entry point DTS, or to make query methods (not taking an EName) cheaper. In order to keep the same net substitution groups, they are passed as the extra substitution groups to the subset BasicTaxonomy.

Creates a "sub-taxonomy" in which only relationships passing the filter occur. Schema and linkbase DOM content remains the same. Only relationships are filtered. It can be used to make query methods (not taking an EName) cheaper.

Creates a "sub-taxonomy" in which only relationships passing the filter occur. Schema and linkbase DOM content remains the same. Only relationships are filtered. It can be used to make query methods (not taking an EName) cheaper.

def findAllInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
def findAllLinkbases: IndexedSeq[Linkbase]
def findAllNonStandardRelationshipsOfType[A <: NonStandardRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
def findAllRelationshipsOfType[A <: Relationship](relationshipType: ClassTag[A]): IndexedSeq[A]
def findAllStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
def findAllStandardRelationshipsOfType[A <: StandardRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
def findAllXsdSchemas: IndexedSeq[XsdSchema]
def findBaseTypeOrSelfUntil(typeEName: EName, p: EName => Boolean): Option[EName]
def findConceptDeclaration(ename: EName): Option[ConceptDeclaration]
def findNamedTypeDefinition(ename: EName): Option[NamedTypeDefinition]
def guessedScope: Scope

Returns the "guessed Scope" from the documents in the taxonomy. This can be handy for finding prefixes for namespace names, or for generating ENames from QNames.

Returns the "guessed Scope" from the documents in the taxonomy. This can be handy for finding prefixes for namespace names, or for generating ENames from QNames.

The resulting Scope is taken from the Scopes of the root elements, ignoring the default namespace, if any. If different root element Scopes are conflicting, it is undetermined which one wins.

Returns the effective taxonomy, after resolving prohibition and overriding.

Returns the effective taxonomy, after resolving prohibition and overriding.

def rootElems: IndexedSeq[TaxonomyElem]
def taxonomyDocs: IndexedSeq[TaxonomyDocument]
def withMaxLengthBeyondCycle(newMaxLengthBeyondCycle: Int): BasicTaxonomy

Inherited methods

final def computeHasHypercubeInheritanceForElrReturningPrimaries(elr: String): Map[EName, Set[EName]]
Inherited from
TaxonomySchemaLike
final def filterDimensionalRelationshipsOfType[A <: DimensionalRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
Inherited from
SchemaLike
final def filterIncomingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](targetConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterIncomingNonStandardRelationshipsOfType[A <: NonStandardRelationship](targetKey: XmlFragmentKey, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterIncomingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](targetConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterItemDeclarations(p: ItemDeclaration => Boolean): IndexedSeq[ItemDeclaration]
Inherited from
TaxonomySchemaLike
Inherited from
SchemaLike
final def filterNonStandardRelationshipsOfType[A <: NonStandardRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterOutgoingDomainMemberRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[DomainMemberRelationship]
final def filterOutgoingHasHypercubeRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[HasHypercubeRelationship]
final def filterOutgoingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](sourceConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterOutgoingNonStandardRelationshipsOfType[A <: NonStandardRelationship](sourceKey: XmlFragmentKey, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterOutgoingParentChildRelationshipsOnElr(sourceConcept: EName, elr: String): IndexedSeq[ParentChildRelationship]
final def filterOutgoingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](sourceConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterOutgoingStandardRelationships(sourceConcept: EName)(p: StandardRelationship => Boolean): IndexedSeq[StandardRelationship]
final def filterOutgoingStandardRelationshipsOfType[A <: StandardRelationship](sourceConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterPresentationRelationshipsOfType[A <: PresentationRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterRelationships(p: Relationship => Boolean): IndexedSeq[Relationship]
final def filterRelationshipsOfType[A <: Relationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterStandardRelationshipsOfType[A <: StandardRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
final def filterTupleDeclarations(p: TupleDeclaration => Boolean): IndexedSeq[TupleDeclaration]
Inherited from
TaxonomySchemaLike
final def filterXsdSchemas(p: XsdSchema => Boolean): IndexedSeq[XsdSchema]
Inherited from
SchemaLike
final def findAllAllowedEnumerationValues(enumerationConcept: EName): Set[EName]
Inherited from
TaxonomyLike
final def findAllDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]
final def findAllDimensionalRelationshipsOfType[A <: DimensionalRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllEnumerationValues(enumerationConcept: EName): Set[EName]
Inherited from
TaxonomyLike
final def findAllIncomingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](targetConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllIncomingNonStandardRelationshipsOfType[A <: NonStandardRelationship](targetKey: XmlFragmentKey, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllIncomingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](targetConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllInheritedHasHypercubesAsElrToPrimariesMap(concept: EName): Map[String, Set[EName]]
Inherited from
TaxonomySchemaLike
final def findAllMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]
final def findAllMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]
final def findAllMembers(domain: EName, elr: String): Set[EName]
final def findAllNonUsableDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]
final def findAllNonUsableMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]
final def findAllNonUsableMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]
final def findAllNonUsableMembers(domain: EName, elr: String, headUsable: Boolean): Set[EName]
final def findAllOutgoingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](sourceConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllOutgoingNonStandardRelationshipsOfType[A <: NonStandardRelationship](sourceKey: XmlFragmentKey, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllOutgoingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](sourceConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllOutgoingStandardRelationships(sourceConcept: EName): IndexedSeq[StandardRelationship]
final def findAllOutgoingStandardRelationshipsOfType[A <: StandardRelationship](sourceConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllOwnOrInheritedHasHypercubesAsElrToPrimariesMap(concept: EName): Map[String, Set[EName]]
final def findAllPresentationRelationshipsOfType[A <: PresentationRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]
final def findAllUsableDimensionMembers(hasHypercubeRelationship: HasHypercubeRelationship): Map[EName, Set[EName]]
final def findAllUsableMembers(dimension: EName, domainElrPairs: Set[(EName, String)]): Set[EName]
final def findAllUsableMembers(dimension: EName, domain: EName, dimensionDomainElr: String): Set[EName]
final def findAllUsableMembers(domain: EName, elr: String, headUsable: Boolean): Set[EName]
final def findDimensionDeclaration(ename: EName): Option[DimensionDeclaration]
Inherited from
TaxonomySchemaLike
final def findHypercubeDeclaration(ename: EName): Option[HypercubeDeclaration]
Inherited from
TaxonomySchemaLike
final def findItemDeclaration(ename: EName): Option[ItemDeclaration]
Inherited from
TaxonomySchemaLike
final def findItemDeclaration(p: ItemDeclaration => Boolean): Option[ItemDeclaration]
Inherited from
TaxonomySchemaLike
final def findMemberDeclarationOfTypedDimension(typedDimension: EName): Option[GlobalElementDeclaration]
Inherited from
TaxonomySchemaLike
Inherited from
SchemaLike
Inherited from
SchemaLike
Inherited from
SchemaLike
final def findNamedTypeOfGlobalElementDeclaration(ename: EName): Option[EName]
Inherited from
SchemaLike
final def findPrimaryItemDeclaration(ename: EName): Option[PrimaryItemDeclaration]
Inherited from
TaxonomySchemaLike
final def findTupleDeclaration(ename: EName): Option[TupleDeclaration]
Inherited from
TaxonomySchemaLike
final def findTupleDeclaration(p: TupleDeclaration => Boolean): Option[TupleDeclaration]
Inherited from
TaxonomySchemaLike
Inherited from
TaxonomySchemaLike
final def findXsdSchema(p: XsdSchema => Boolean): Option[XsdSchema]
Inherited from
SchemaLike
final def getConceptDeclaration(ename: EName): ConceptDeclaration
Inherited from
TaxonomySchemaLike
final def getItemDeclaration(ename: EName): ItemDeclaration
Inherited from
TaxonomySchemaLike
Inherited from
SchemaLike
final def getTupleDeclaration(ename: EName): TupleDeclaration
Inherited from
TaxonomySchemaLike
final def isEnumerationConcept(itemDecl: ItemDeclaration): Boolean
Inherited from
TaxonomySchemaLike
final def isEnumerationConcept(ename: EName): Boolean
Inherited from
TaxonomySchemaLike
final def isEnumerationItemType(ename: EName): Boolean
Inherited from
TaxonomySchemaLike
final def isSetValueEnumerationConcept(itemDecl: ItemDeclaration): Boolean
Inherited from
TaxonomySchemaLike
final def isSetValueEnumerationConcept(ename: EName): Boolean
Inherited from
TaxonomySchemaLike
final def isSetValueEnumerationItemType(ename: EName): Boolean
Inherited from
TaxonomySchemaLike
final def isSingleValueEnumerationConcept(itemDecl: ItemDeclaration): Boolean
Inherited from
TaxonomySchemaLike
final def isSingleValueEnumerationConcept(ename: EName): Boolean
Inherited from
TaxonomySchemaLike
final def isSingleValueEnumerationItemType(ename: EName): Boolean
Inherited from
TaxonomySchemaLike