StandardInterConceptRelationshipContainerApi

Purely abstract trait offering a standard inter-concept relationship query API.

Purely abstract trait offering a standard inter-concept relationship query API.

Implementations should make sure that looking up relationships by source (or target) EName is fast.

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

For some of the graph theory terms used, see http://artint.info/html/ArtInt_50.html.

Authors

Chris de Vreeze

class Object
trait Matchable
class Any

Value members

Abstract methods

Calls method filterIncomingUnrestrictedStandardInterConceptRelationshipPaths, adding sub-predicate isConsecutiveRelationshipPath to the relationship path predicate.

Calls method filterIncomingUnrestrictedStandardInterConceptRelationshipPaths, adding sub-predicate isConsecutiveRelationshipPath to the relationship path predicate.

Typically this method should be preferred over method filterIncomingUnrestrictedStandardInterConceptRelationshipPaths.

Filters standard inter-concept relationships that are incoming to the given concept.

Filters standard inter-concept relationships that are incoming to the given concept.

def filterIncomingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](targetConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]

Filters standard inter-concept relationships of the given type that are incoming to the given concept.

Filters standard inter-concept relationships of the given type that are incoming to the given concept.

Filters the standard inter-concept relationship paths that are incoming to the given concept and whose relationships are of the given type. 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 standard inter-concept relationship paths that are incoming to the given concept and whose relationships are of the given type. 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.

This method can be useful for finding relationship paths that are not consecutive and therefore not allowed, when we do not yet know that the taxonomy is XBRL-valid.

This is a very general method that is used to implement specific methods in more specific relationship query API traits. Typically prefer method filterIncomingConsecutiveStandardInterConceptRelationshipPaths instead.

Calls method filterOutgoingUnrestrictedStandardInterConceptRelationshipPaths, adding sub-predicate isConsecutiveRelationshipPath to the relationship path predicate.

Calls method filterOutgoingUnrestrictedStandardInterConceptRelationshipPaths, adding sub-predicate isConsecutiveRelationshipPath to the relationship path predicate.

Typically this method should be preferred over method filterOutgoingUnrestrictedStandardInterConceptRelationshipPaths.

Filters standard inter-concept relationships that are outgoing from the given concept.

Filters standard inter-concept relationships that are outgoing from the given concept.

def filterOutgoingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](sourceConcept: EName, relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]

Filters standard inter-concept relationships of the given type that are outgoing from the given concept.

Filters standard inter-concept relationships of the given type that are outgoing from the given concept.

Filters the standard inter-concept relationship paths that are outgoing from the given concept and whose relationships are of the given type. 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 standard inter-concept relationship paths that are outgoing from the given concept and whose relationships are of the given type. 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.

This method can be useful for finding relationship paths that are not consecutive and therefore not allowed, when we do not yet know that the taxonomy is XBRL-valid.

This is a very general method that is used to implement specific methods in more specific relationship query API traits. Typically prefer method filterOutgoingConsecutiveStandardInterConceptRelationshipPaths instead.

def filterStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]

Finds all "consecutive" standard inter-concept relationships.

Finds all "consecutive" standard inter-concept relationships.

Two relationships "follow" each other if method StandardInterConceptRelationship.isFollowedBy says so.

Note that for non-dimensional relationships this implies that the parameter and result relationship types must be the same, or else no relationships are returned.

This method is shorthand for:

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

Finds all "following" ("consecutive") standard inter-concept relationships of the given result type.

Finds all "following" ("consecutive") standard inter-concept relationships of the given result type.

Two relationships "follow" each other if method StandardInterConceptRelationship.isFollowedBy says so.

Note that for non-dimensional relationships this implies that the parameter and result relationship types must be the same, or else no relationships are returned.

This method is shorthand for:

filterOutgoingStandardInterConceptRelationshipsOfType(relationship.targetConceptEName, resultRelationshipType) { rel =>
 relationship.isFollowedBy(rel)
}

Finds all standard inter-concept relationships that are incoming to the given concept.

Finds all standard inter-concept relationships that are incoming to the given concept.

def findAllIncomingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](targetConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]

Finds all standard inter-concept relationships of the given type that are incoming to the given concept.

Finds all standard inter-concept relationships of the given type that are incoming to the given concept.

Finds all standard inter-concept relationships that are outgoing from the given concept.

Finds all standard inter-concept relationships that are outgoing from the given concept.

def findAllOutgoingStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](sourceConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]

Finds all standard inter-concept relationships of the given type that are outgoing from the given concept.

Finds all standard inter-concept relationships of the given type that are outgoing from the given concept.

def findAllStandardInterConceptRelationshipsOfType[A <: StandardInterConceptRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]