
de.bioforscher.singa.simulation.model.concentrations.SimpleConcentrationContainer Maven / Gradle / Ivy
The newest version!
package de.bioforscher.singa.simulation.model.concentrations;
import de.bioforscher.singa.chemistry.descriptive.entities.ChemicalEntity;
import de.bioforscher.singa.features.parameters.EnvironmentalParameters;
import de.bioforscher.singa.features.quantities.MolarConcentration;
import de.bioforscher.singa.simulation.model.compartments.CellSection;
import javax.measure.Quantity;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/**
* @author cl
*/
public class SimpleConcentrationContainer implements ConcentrationContainer {
private final Map> concentrations;
private final CellSection cellSection;
private final Set cellSections;
public SimpleConcentrationContainer(CellSection cellSection) {
concentrations = new HashMap<>();
this.cellSection = cellSection;
cellSections = Collections.singleton(cellSection);
}
@Override
public Quantity getConcentration(ChemicalEntity chemicalEntity) {
if (concentrations.containsKey(chemicalEntity)) {
return concentrations.get(chemicalEntity);
}
concentrations.put(chemicalEntity, EnvironmentalParameters.emptyConcentration());
return EnvironmentalParameters.emptyConcentration();
}
@Override
public Map> getAllConcentrationsForSection(CellSection cellSection) {
if (this.cellSection.equals(cellSection)) {
return concentrations;
}
return Collections.emptyMap();
}
@Override
public Quantity getAvailableConcentration(CellSection cellSection, ChemicalEntity chemicalEntity) {
if (this.cellSection.equals(cellSection)) {
if (concentrations.containsKey(chemicalEntity)) {
return getConcentration(chemicalEntity);
}
concentrations.put(chemicalEntity, EnvironmentalParameters.emptyConcentration());
return EnvironmentalParameters.emptyConcentration();
}
return null;
}
@Override
public void setConcentration(ChemicalEntity chemicalEntity, Quantity concentration) {
concentrations.put(chemicalEntity, concentration);
}
@Override
public void setAvailableConcentration(CellSection cellSection, ChemicalEntity chemicalEntity, Quantity concentration) {
setConcentration(chemicalEntity, concentration);
}
@Override
public Set getAllReferencedEntities() {
return concentrations.keySet();
}
@Override
public Set getAllReferencedSections() {
return cellSections;
}
@Override
public Map> getAllConcentrations() {
return concentrations;
}
@Override
public SimpleConcentrationContainer getCopy() {
return new SimpleConcentrationContainer(cellSection);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy