ILsaNode

interface ILsaNode : Node<T>

Interface for an LSA Node. Avoids the crappy casts.

Inheritors

Properties

Link copied to clipboard

Utilities for Nodes.

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: 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

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 fun compareTo(p: T): Int
Link copied to clipboard
abstract fun contains(molecule: Molecule): Boolean

Tests whether a node contains a Molecule.

Link copied to clipboard
abstract fun equals(other: Any): Boolean
Link copied to clipboard
open fun forEach(p: Consumer<in T>)
Link copied to clipboard
Calculates the concentration of a molecule.
Link copied to clipboard
abstract fun getContents(): Map<Molecule, T>
Link copied to clipboard
abstract fun getId(): Int
Link copied to clipboard
abstract fun getLsaSpace(): List<ILsaMolecule>
Link copied to clipboard
abstract fun getMoleculeCount(): Int
Link copied to clipboard
abstract fun getProperties(): List<NodeProperty<T>>
Link copied to clipboard
abstract fun getReactions(): List<Reaction<T>>

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

Link copied to clipboard
abstract fun hashCode(): Int
Link copied to clipboard
abstract fun iterator(): Iterator<T>
Link copied to clipboard
fun <R> Iterable<R>.randomElement(randomGenerator: <Error class: unknown class>): R

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

Link copied to clipboard
abstract fun removeConcentration(moleculeToRemove: Molecule)

abstract fun removeConcentration(matchedInstance: ILsaMolecule): Boolean
Deletes an ILsaMolecule from the Node LsaSpace Warning: the method removes only the first matched ILsaMolecule.
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.

abstract fun setConcentration(inst: ILsaMolecule)
Adds an instance of ILsaMolecule in the node's LsaSpace.
Link copied to clipboard
fun <R> Iterable<R>.shuffled(randomGenerator: <Error class: unknown class>): Iterable<R>

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

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun <T, P : Position<out P>, TS : Any, PS : PositionSurrogate> Node<T>.toNodeSurrogate(environment: Environment<T, P>, toConcentrationSurrogate: (T) -> TS, toPositionSurrogate: (P) -> PS): NodeSurrogate<TS, PS>