InterConceptRelationshipContainerApi

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

Purely abstract trait offering a standard/generic 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

def filterIncomingConsecutiveInterConceptRelationshipPaths[A <: InterElementDeclarationRelationship](targetConcept: EName, relationshipType: ClassTag[A])(p: ConsecutiveRelationshipPath[A] => Boolean): IndexedSeq[ConsecutiveRelationshipPath[A]]

Filters the consecutive 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 consecutive 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 standard/generic inter-concept relationships that are incoming to the given concept.

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

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

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

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

def filterInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](relationshipType: ClassTag[A])(p: A => Boolean): IndexedSeq[A]
def filterOutgoingConsecutiveInterConceptRelationshipPaths[A <: InterElementDeclarationRelationship](sourceConcept: EName, relationshipType: ClassTag[A])(p: ConsecutiveRelationshipPath[A] => Boolean): IndexedSeq[ConsecutiveRelationshipPath[A]]

Filters the consecutive 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 consecutive 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 standard/generic inter-concept relationships that are outgoing from the given concept.

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

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

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

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

Finds all "consecutive" standard/generic inter-concept relationships.

Finds all "consecutive" standard/generic inter-concept relationships.

Two relationships "follow" each other if method InterElementDeclarationRelationship.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:

filterOutgoingInterConceptRelationships(relationship.targetConceptEName) { rel =>
 relationship.isFollowedBy(rel)
}
def findAllConsecutiveInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](relationship: InterElementDeclarationRelationship, resultRelationshipType: ClassTag[A]): IndexedSeq[A]

Finds all "consecutive" standard/generic inter-concept relationships of the given result type.

Finds all "consecutive" standard/generic inter-concept relationships of the given result type.

Two relationships "follow" each other if method InterElementDeclarationRelationship.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:

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

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

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

def findAllIncomingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](targetConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]

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

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

def findAllInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](relationshipType: ClassTag[A]): IndexedSeq[A]

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

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

def findAllOutgoingInterConceptRelationshipsOfType[A <: InterElementDeclarationRelationship](sourceConcept: EName, relationshipType: ClassTag[A]): IndexedSeq[A]

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

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