EdgeList

abstract class EdgeList<NodeType : Node, EdgeType : Edge<NodeType>>(var thisRef: Node, var init: (start: Node, end: NodeType) -> EdgeType, var outgoing: Boolean = true, var onAdd: (EdgeType) -> Unit? = null, var onRemove: (EdgeType) -> Unit? = null) : ArrayList<EdgeType> , EdgeCollection<NodeType, EdgeType>

This class extends a list of edges. This allows us to use lists of edges more conveniently.

Inheritors

Constructors

Link copied to clipboard
constructor(thisRef: Node, init: (start: Node, end: NodeType) -> EdgeType, outgoing: Boolean = true, onAdd: (EdgeType) -> Unit? = null, onRemove: (EdgeType) -> Unit? = null)

Properties

Link copied to clipboard

This computed property returns the common type in a Collection of Type objects. For example, if two types A and B both derive from the interface C`` then C` would be returned.

Link copied to clipboard
open override var init: (start: Node, end: NodeType) -> EdgeType
Link copied to clipboard
open override var onAdd: (EdgeType) -> Unit?
Link copied to clipboard
open override var onRemove: (EdgeType) -> Unit?
Link copied to clipboard
open override var outgoing: Boolean
Link copied to clipboard
open override val size: Int
Link copied to clipboard
open override var thisRef: Node

Functions

Link copied to clipboard
open fun add(target: NodeType, init: (Node, NodeType) -> EdgeType = this.init, builder: EdgeType.() -> Unit? = null): Boolean

Creates a new edge with the target node and an optional builder to include edge properties. If outgoing is true, the edge is created from thisRef ->target, otherwise from target to thisRef.

open override fun add(element: EdgeType): Boolean
open override fun add(index: Int, element: EdgeType)

fun add(index: Int, target: NodeType)

This function creates a new edge (of EdgeType) to/from the specified node target (depending on outgoing) and adds it to the specified index in the list.

Link copied to clipboard
fun <EdgeType : Edge<Node>> MutableList<Node>.add(target: Node, builder: EdgeType.() -> Unit): Boolean
Link copied to clipboard
open fun addAll(targets: Collection<NodeType>, builder: EdgeType.() -> Unit? = null): Boolean
open override fun addAll(elements: Collection<EdgeType>): Boolean
open override fun addAll(index: Int, elements: Collection<EdgeType>): Boolean
Link copied to clipboard

Wraps the given Type into a chain of PointerTypes and ReferenceTypes, given the operations in TypeOperations.

Link copied to clipboard
fun <T : Node> Collection<T>?.byNameOrNull(lookup: String, modifier: SearchModifier): T?

This function returns the first node that matches the name on the supplied list of nodes.

Link copied to clipboard
open override fun clear()
Link copied to clipboard
open override fun clone(): Any
Link copied to clipboard
open fun contains(target: NodeType): Boolean
open operator override fun contains(element: EdgeType): Boolean
Link copied to clipboard
open override fun containsAll(elements: Collection<EdgeType>): Boolean
Link copied to clipboard
open fun <NodeType : Node, PropertyEdgeType : Edge<NodeType>> createEdge(target: NodeType, init: (Node, NodeType) -> PropertyEdgeType, outgoing: Boolean = true, builder: PropertyEdgeType.() -> Unit? = null): PropertyEdgeType
Link copied to clipboard
open fun ensureCapacity(p0: Int)
Link copied to clipboard
open operator override fun equals(other: Any?): Boolean
Link copied to clipboard
open override fun forEach(p0: Consumer<in EdgeType>)
Link copied to clipboard
open operator override fun get(index: Int): EdgeType
Link copied to clipboard
operator fun <T : Node> Collection<T>?.get(predicate: (T) -> Boolean, modifier: SearchModifier = SearchModifier.NONE): T?

A shortcut to call firstOrNull using the [] syntax.

operator fun <T : Node> Collection<T>?.get(lookup: String, modifier: SearchModifier = SearchModifier.NONE): T?

A shortcut to call byNameOrNull using the [] syntax.

Link copied to clipboard
open fun handleOnAdd(edge: EdgeType)

This function will be executed after the edge was added to the container. This can be used to propagate the edge to other properties or register additional handlers, e.g. a TypeObserver.

Link copied to clipboard
open fun handleOnRemove(edge: EdgeType)

This function will be executed after an edge was removed from the container. This can be used to unregister additional handlers, e.g. a TypeObserver.

Link copied to clipboard
open override fun hashCode(): Int
Link copied to clipboard
open override fun indexOf(element: EdgeType): Int
Link copied to clipboard
operator fun <T : Node> Collection<T>.invoke(predicate: (T) -> Boolean): List<T>

A shortcut invoke filter on a list of nodes.

operator fun <T : Node> Collection<T>.invoke(lookup: String): List<T>

A shortcut to filter a list of nodes by their name.

inline operator fun <T> List<Node>.invoke(i: Int = 0): T?

Returns the i-th item in this list (or null) and casts it to T.

Link copied to clipboard
open override fun isEmpty(): Boolean
Link copied to clipboard
open operator override fun iterator(): MutableIterator<EdgeType>
Link copied to clipboard
open override fun lastIndexOf(element: EdgeType): Int
Link copied to clipboard
open override fun listIterator(index: Int): MutableListIterator<EdgeType>
Link copied to clipboard
open operator fun plusAssign(end: NodeType)
Link copied to clipboard
open fun remove(target: NodeType): Boolean

Removes all edges with the target node. The target is considered to be either the Edge.end or Edge.start depending on outgoing.

open override fun remove(element: EdgeType): Boolean
Link copied to clipboard
open override fun removeAll(elements: Collection<EdgeType>): Boolean
Link copied to clipboard
open override fun removeAt(index: Int): EdgeType
Link copied to clipboard
open override fun removeIf(predicate: Predicate<in EdgeType>): Boolean
Link copied to clipboard
fun replace(old: NodeType, new: NodeType): Boolean

Replaces the first occurrence of an edge with old with a new edge to new.

Link copied to clipboard
open override fun replaceAll(p0: UnaryOperator<EdgeType>)
Link copied to clipboard
open fun resetTo(nodes: Collection<NodeType>)

Clears the collection and adds the nodes.

Link copied to clipboard
open override fun retainAll(elements: Collection<EdgeType>): Boolean
Link copied to clipboard
open operator override fun set(index: Int, element: EdgeType): EdgeType
Link copied to clipboard
open override fun sort(p0: Comparator<in EdgeType>)
Link copied to clipboard
open override fun spliterator(): Spliterator<EdgeType>
Link copied to clipboard
open override fun subList(fromIndex: Int, toIndex: Int): MutableList<EdgeType>
Link copied to clipboard
open override fun toArray(): Array<Any>
open override fun <T : Any> toArray(p0: Array<T>): Array<T>
Link copied to clipboard
Link copied to clipboard
open override fun toNodeCollection(predicate: (EdgeType) -> Boolean?): List<NodeType>

Converts this collection of edges into a collection of nodes for easier access to the "target" nodes.

Link copied to clipboard
open override fun toString(): String
Link copied to clipboard
open fun trimToSize()
Link copied to clipboard
open override fun unwrap(): UnwrappedEdgeList<NodeType, EdgeType>

Returns an UnwrappedEdgeList magic container which holds a structure that provides easy access to the "target" nodes without edge information.