Node

Parameters

The type of the concentration

This interface must be implemented in every realization of node

Types

Link copied to clipboard
object Companion

Utilities for Nodes.

Properties

Link copied to clipboard
abstract val contents: Map<Molecule, T>
Link copied to clipboard
abstract val id: Int
Link copied to clipboard
abstract val moleculeCount: Int
Link copied to clipboard
abstract val properties: List<NodeProperty<T>>
Link copied to clipboard
abstract val reactions: List<Reaction<T>>

This method allows to access all the reaction of the node.

Functions

Link copied to clipboard
abstract fun addProperty(nodeProperty: NodeProperty<T>)

Adds a capability to the node.

Link copied to clipboard
abstract fun addReaction(reactionToAdd: Reaction<T>)

Adds a reaction to this node. The reaction is added only in the node, but not in the it.unibo.alchemist.core.Simulation scheduler, so it will never be executed. To add the reaction also in the scheduler (and start to execute it), you have to call also the method it.unibo.alchemist.core.Simulation.reactionAdded.

Link copied to clipboard
open fun <C : NodeProperty<T>> asProperty(superType: Class<C>): C
open fun <C : NodeProperty<T>> asProperty(superType: KClass<C>): C

returns a NodeProperty of the provided superType.

Link copied to clipboard
inline fun <T, C : NodeProperty<T>> Node<T>.asProperty(): C

returns a NodeProperty of the provided type C.

Link copied to clipboard
open fun <C : NodeProperty<T>> asPropertyOrNull(superType: Class<in C>): C?
open fun <C : NodeProperty<T>> asPropertyOrNull(superType: KClass<in C>): C?

returns a NodeProperty of the provided superType.

Link copied to clipboard
inline fun <T, C : NodeProperty<T>> Node<T>.asPropertyOrNull(): C?

returns a NodeProperty of the provided type C or null if the node does not have a compatible property.

Link copied to clipboard
abstract fun cloneNode(currentTime: Time): Node<T>

Creates a new Node which is a clone of the current Node. The new Node will have all the current Node's properties, such as reactions and molecules, but it will also have a different ID.

Link copied to clipboard
abstract operator fun compareTo(other: Node<T>): Int
Link copied to clipboard
abstract operator fun contains(molecule: Molecule): Boolean

Tests whether a node contains a Molecule.

Link copied to clipboard
abstract operator override fun equals(other: Any?): Boolean
Link copied to clipboard
abstract fun getConcentration(molecule: Molecule): T

Calculates the concentration of a molecule.

Link copied to clipboard
abstract override fun hashCode(): Int
Link copied to clipboard
abstract operator fun iterator(): Iterator<Reaction<T>>
Link copied to clipboard
fun <R> Iterable<R>.randomElement(randomGenerator: RandomGenerator): R

Returns a random element of the Iterable using the provided randomGenerator.

Link copied to clipboard
abstract fun removeConcentration(moleculeToRemove: Molecule)
Link copied to clipboard
abstract fun removeReaction(reactionToRemove: Reaction<T>)

Removes a reaction from this node. The reaction is removed only in the node, but not in the it.unibo.alchemist.core.Simulation scheduler, so the scheduler will continue to execute the reaction. To remove the reaction also in the scheduler (and stop to execute it), you have to call also the method it.unibo.alchemist.core.Simulation.reactionRemoved.

Link copied to clipboard
abstract fun setConcentration(molecule: Molecule, concentration: T)

Sets the concentration of mol to c.

Link copied to clipboard
fun <R> Iterable<R>.shuffled(randomGenerator: RandomGenerator): Iterable<R>

Fisher–Yates shuffle algorithm using a RandomGenerator. More information on Wikipedia.

Link copied to clipboard