it.unibo.alchemist.model.actions.AbstractActionOnSingleMolecule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of alchemist-implementationbase Show documentation
Show all versions of alchemist-implementationbase Show documentation
Abstract, incarnation independent implementations of the Alchemist's interfaces. Provides support for those who want to write incarnations.
/*
* Copyright (C) 2010-2023, Danilo Pianini and contributors
* listed, for each module, in the respective subproject's build.gradle.kts file.
*
* This file is part of Alchemist, and is distributed under the terms of the
* GNU General Public License, with a linking exception,
* as described in the file LICENSE in the Alchemist distribution's top directory.
*/
package it.unibo.alchemist.model.actions;
import it.unibo.alchemist.model.Molecule;
import it.unibo.alchemist.model.Node;
/**
* This class offers the basic structures to provide operations with numeric
* concentrations on a single molecule.
*
* @param concentration type
*/
public abstract class AbstractActionOnSingleMolecule extends AbstractAction {
private static final long serialVersionUID = 5506733553861927362L;
private final Molecule mol;
/**
* Call this constructor in the subclasses in order to automatically
* instance the node, the molecules and the dependency managing facilities.
*
* @param node
* the node this action belongs to
* @param molecule
* the molecule which whose concentration will be modified y the
* execution of this action
*/
protected AbstractActionOnSingleMolecule(final Node node,
final Molecule molecule) {
super(node);
this.mol = molecule;
declareDependencyTo(molecule);
}
/**
* @return the molecule which whose concentration will be modified y the
* execution of this action
*/
public Molecule getMolecule() {
return mol;
}
}