Currently job artifacts in CI/CD pipelines on LRZ GitLab never expire. Starting from Wed 26.1.2022 the default expiration time will be 30 days (GitLab default). Currently existing artifacts in already completed jobs will not be affected by the change. The latest artifacts for all jobs in the latest successful pipelines will be kept. More information: https://gitlab.lrz.de/help/user/admin_area/settings/continuous_integration.html#default-artifacts-expiration

Commit 941c94cd authored by Benedikt Zoennchen's avatar Benedikt Zoennchen
Browse files

refector ScenarioStore: use private variables instead of public.

parent a523b13a
......@@ -300,7 +300,7 @@ public class PostvisualizationModel extends SimulationModel<PostvisualizationCon
private double getSimTimeInSec(final Step step) {
return step.getSimTimeInSec()
.orElse(step.getStepNumber() * vadere.getScenarioStore().attributesSimulation.getSimTimeStepLength());
.orElse(step.getStepNumber() * vadere.getScenarioStore().getAttributesSimulation().getSimTimeStepLength());
}
public synchronized void setPotentialFieldContainer(final PotentialFieldContainer container) {
......
......@@ -173,7 +173,7 @@ public class TextView extends JPanel implements IJsonView {
switch (attributeType) {
case MODEL:
ModelDefinition modelDefinition = JsonConverter.deserializeModelDefinition(json);
currentScenario.getScenarioStore().mainModel = modelDefinition.getMainModel();
currentScenario.getScenarioStore().setMainModel(modelDefinition.getMainModel());
currentScenario.setAttributesModel(modelDefinition.getAttributesList());
break;
case SIMULATION:
......@@ -220,7 +220,7 @@ public class TextView extends JPanel implements IJsonView {
switch (attributeType) {
case MODEL:
txtrTextfiletextarea.setText(StateJsonConverter.serializeMainModelAttributesModelBundle(
scenario.getModelAttributes(), scenario.getScenarioStore().mainModel));
scenario.getModelAttributes(), scenario.getScenarioStore().getMainModel()));
break;
case SIMULATION:
txtrTextfiletextarea
......
......@@ -67,7 +67,7 @@ public class Simulation {
this.name = name;
this.mainModel = mainModel;
this.scenarioStore = scenarioStore;
this.attributesSimulation = scenarioStore.attributesSimulation;
this.attributesSimulation = scenarioStore.getAttributesSimulation();
this.attributesAgent = scenarioStore.getTopography().getAttributesPedestrian();
this.sourceControllers = new LinkedList<>();
this.targetControllers = new LinkedList<>();
......
......@@ -61,9 +61,9 @@ public class ScenarioBuilder {
// TODO: duplicated code
if(AttributesSimulation.class == clazz){
builder = new AttributesBuilder<>((E)store.attributesSimulation);
builder = new AttributesBuilder<>((E)store.getAttributesSimulation());
builder.setField(fieldName, value);
store.attributesSimulation = (AttributesSimulation) builder.build();
store.setAttributesSimulation((AttributesSimulation) builder.build());
}
else if(AttributesAgent.class == clazz){
builder = new AttributesBuilder<>((E)store.getTopography().getAttributesPedestrian());
......@@ -84,8 +84,8 @@ public class ScenarioBuilder {
else {
builder = new AttributesBuilder<>(store.getAttributes(clazz));
builder.setField(fieldName, value);
store.attributesList.removeIf(attributes -> attributes.getClass() == clazz);
store.attributesList.add(builder.build());
store.removeAttributesIf(attributes -> attributes.getClass() == clazz);
store.addAttributes(builder.build());
}
}
......
......@@ -25,7 +25,7 @@ public class MainModelBuilder {
public void createModelAndRandom()
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
final AttributesSimulation attributesSimulation = scenarioStore.attributesSimulation;
final AttributesSimulation attributesSimulation = scenarioStore.getAttributesSimulation();
if (attributesSimulation.isUseRandomSeed()) {
random = new Random(attributesSimulation.getRandomSeed());
} else {
......@@ -45,10 +45,10 @@ public class MainModelBuilder {
}
private MainModel instantiateMainModel(Random random) {
String mainModelName = scenarioStore.mainModel;
String mainModelName = scenarioStore.getMainModel();
DynamicClassInstantiator<MainModel> instantiator = new DynamicClassInstantiator<>();
MainModel mainModel = instantiator.createObject(mainModelName);
mainModel.initialize(scenarioStore.attributesList, scenarioStore.getTopography(),
mainModel.initialize(scenarioStore.getAttributesList(), scenarioStore.getTopography(),
scenarioStore.getTopography().getAttributesPedestrian(), random);
return mainModel;
}
......
......@@ -11,6 +11,7 @@ import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.vadere.simulator.projects.dataprocessing.DataProcessingJsonManager;
import org.vadere.simulator.projects.io.JsonConverter;
import org.vadere.state.attributes.Attributes;
......@@ -32,24 +33,17 @@ import difflib.DiffUtils;
public class Scenario {
private static Logger logger = LogManager.getLogger(Scenario.class);
private ScenarioStore scenarioStore;
private DataProcessingJsonManager dataProcessingJsonManager;
private String savedStateSerialized;
private String currentStateSerialized;
public Scenario(final String name) {
this(name, new ScenarioStore(name));
}
public Scenario(final ScenarioStore store) {
this(store.name, store);
this(new ScenarioStore(name));
}
public Scenario(final String name, final ScenarioStore store) {
public Scenario(@NotNull final ScenarioStore store) {
this.scenarioStore = store;
this.dataProcessingJsonManager = new DataProcessingJsonManager();
......@@ -88,7 +82,7 @@ public class Scenario {
}
public String getName() {
return scenarioStore.name;
return scenarioStore.getName();
}
public ScenarioStore getScenarioStore() {
......@@ -96,7 +90,7 @@ public class Scenario {
}
public List<Attributes> getModelAttributes() {
return scenarioStore.attributesList;
return scenarioStore.getAttributesList();
}
public AttributesAgent getAttributesPedestrian() {
......@@ -104,26 +98,26 @@ public class Scenario {
}
public AttributesSimulation getAttributesSimulation() {
return scenarioStore.attributesSimulation;
return scenarioStore.getAttributesSimulation();
}
public Topography getTopography() {
return scenarioStore.getTopography();
}
public void setName(String name) {
this.scenarioStore.name = name;
public void setName(@NotNull final String name) {
this.scenarioStore.setName(name);
}
public void setAttributesModel(List<Attributes> attributesList) {
scenarioStore.attributesList = attributesList;
public void setAttributesModel(@NotNull final List<Attributes> attributesList) {
scenarioStore.setAttributesList(attributesList);
}
public void setAttributesSimulation(AttributesSimulation attributesSimulation) {
this.scenarioStore.attributesSimulation = attributesSimulation;
public void setAttributesSimulation(@NotNull final AttributesSimulation attributesSimulation) {
this.scenarioStore.setAttributesSimulation(attributesSimulation);
}
public void setTopography(final Topography topography) {
public void setTopography(@NotNull final Topography topography) {
scenarioStore.setTopography(topography);
}
......@@ -142,7 +136,7 @@ public class Scenario {
}
public String getDisplayName() {
return scenarioStore.name + (hasUnsavedChanges() ? "*" : "");
return scenarioStore.getName() + (hasUnsavedChanges() ? "*" : "");
}
public void discardChanges() {
......@@ -157,16 +151,16 @@ public class Scenario {
}
public String getDescription() {
return scenarioStore.description;
return scenarioStore.getDescription();
}
public void setDescription(String description) {
scenarioStore.description = description;
scenarioStore.setDescription(description);
}
public String readyToRunResponse() { // TODO [priority=medium] [task=check] add more conditions
if (scenarioStore.mainModel == null) {
return scenarioStore.name + ": no mainModel is set";
if (scenarioStore.getMainModel() == null) {
return scenarioStore.getName() + ": no mainModel is set";
}
return null;
}
......@@ -175,11 +169,11 @@ public class Scenario {
return dataProcessingJsonManager;
}
public void setDataProcessingJsonManager(final DataProcessingJsonManager manager) {
public void setDataProcessingJsonManager(@NotNull final DataProcessingJsonManager manager) {
this.dataProcessingJsonManager = manager;
}
public void saveToOutputPath(final Path outputPath) {
public void saveToOutputPath(@NotNull final Path outputPath) {
try (PrintWriter out = new PrintWriter(Paths.get(outputPath.toString(), getName() + IOUtils.SCENARIO_FILE_EXTENSION).toString())) {
out.println(JsonConverter.serializeScenarioRunManager(this, true));
} catch (IOException e) {
......
......@@ -84,7 +84,7 @@ public class ScenarioRun implements Runnable {
final Random random = modelBuilder.getRandom();
// prepare processors and simulation data writer
if(scenarioStore.attributesSimulation.isWriteSimulationData()) {
if(scenarioStore.getAttributesSimulation().isWriteSimulationData()) {
processorManager = dataProcessingJsonManager.createProcessorManager(mainModel);
}
......@@ -97,7 +97,7 @@ public class ScenarioRun implements Runnable {
sealAllAttributes();
// Run simulation main loop from start time = 0 seconds
simulation = new Simulation(mainModel, 0, scenarioStore.name, scenarioStore, passiveCallbacks, random, processorManager);
simulation = new Simulation(mainModel, 0, scenarioStore.getName(), scenarioStore, passiveCallbacks, random, processorManager);
}
simulation.run();
......@@ -165,8 +165,8 @@ public class ScenarioRun implements Runnable {
}
public String readyToRunResponse() { // TODO [priority=medium] [task=check] add more conditions
if (scenarioStore.mainModel == null) {
return scenarioStore.name + ": no mainModel is set";
if (scenarioStore.getMainModel() == null) {
return scenarioStore.getName() + ": no mainModel is set";
}
return null;
}
......
......@@ -3,6 +3,7 @@ package org.vadere.simulator.projects;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.log4j.LogManager;
......@@ -28,11 +29,11 @@ import com.fasterxml.jackson.core.JsonProcessingException;
public class ScenarioStore {
private static Logger logger = LogManager.getLogger(ScenarioStore.class);
public String name;
public String description;
public String mainModel;
public List<Attributes> attributesList;
public AttributesSimulation attributesSimulation;
private String name;
private String description;
private String mainModel;
private List<Attributes> attributesList;
private AttributesSimulation attributesSimulation;
private Topography topography;
public ScenarioStore(final String name, final String description, final String mainModel, final List<Attributes> attributesModel,
......@@ -85,4 +86,52 @@ public class ScenarioStore {
public <T extends Attributes> T getAttributes(@NotNull final Class<T> clazz) {
return FindByClass.findSingleObjectOfClass(attributesList, clazz);
}
public void setAttributesList(final List<Attributes> attributesList) {
this.attributesList = attributesList;
}
public void setAttributesSimulation(final AttributesSimulation attributesSimulation) {
this.attributesSimulation = attributesSimulation;
}
public void removeAttributesIf(@NotNull final Predicate<Attributes> predicate) {
attributesList.removeIf(predicate);
}
public void addAttributes(@NotNull final Attributes attributes) {
attributesList.add(attributes);
}
public void setDescription(final String description) {
this.description = description;
}
public void setMainModel(final String mainModel) {
this.mainModel = mainModel;
}
public void setName(final String name) {
this.name = name;
}
public AttributesSimulation getAttributesSimulation() {
return attributesSimulation;
}
public List<Attributes> getAttributesList() {
return attributesList;
}
public String getDescription() {
return description;
}
public String getMainModel() {
return mainModel;
}
public String getName() {
return name;
}
}
......@@ -87,8 +87,8 @@ public class JsonConverter {
}
private static void serializeMeta(ObjectNode node, boolean commitHashIncluded, ScenarioStore scenarioStore) {
node.put("name", scenarioStore.name);
node.put("description", scenarioStore.description);
node.put("name", scenarioStore.getName());
node.put("description", scenarioStore.getDescription());
node.put("release", HashGenerator.releaseNumber());
if (commitHashIncluded)
node.put("commithash", HashGenerator.commitHash());
......@@ -97,14 +97,14 @@ public class JsonConverter {
private static ObjectNode serializeVadereNode(ScenarioStore scenarioStore) {
ObjectNode vadereNode = StateJsonConverter.createObjectNode();
vadereNode.put(StateJsonConverter.MAIN_MODEL_KEY, scenarioStore.mainModel);
vadereNode.put(StateJsonConverter.MAIN_MODEL_KEY, scenarioStore.getMainModel());
// vadere > attributesModel
ObjectNode attributesModelNode = StateJsonConverter.serializeAttributesModelToNode(scenarioStore.attributesList);
ObjectNode attributesModelNode = StateJsonConverter.serializeAttributesModelToNode(scenarioStore.getAttributesList());
vadereNode.set("attributesModel", attributesModelNode);
// vadere > attributesSimulation
vadereNode.set("attributesSimulation", StateJsonConverter.convertValue(scenarioStore.attributesSimulation, JsonNode.class));
vadereNode.set("attributesSimulation", StateJsonConverter.convertValue(scenarioStore.getAttributesSimulation(), JsonNode.class));
// vadere > topography
ObjectNode topographyNode = StateJsonConverter.serializeTopographyToNode(scenarioStore.getTopography());
......@@ -119,10 +119,10 @@ public class JsonConverter {
}
public static ScenarioStore cloneScenarioStore(ScenarioStore scenarioStore) throws IOException {
JsonNode attributesSimulationNode = StateJsonConverter.convertValue(scenarioStore.attributesSimulation, JsonNode.class);
ObjectNode attributesModelNode = StateJsonConverter.serializeAttributesModelToNode(scenarioStore.attributesList);
JsonNode attributesSimulationNode = StateJsonConverter.convertValue(scenarioStore.getAttributesSimulation(), JsonNode.class);
ObjectNode attributesModelNode = StateJsonConverter.serializeAttributesModelToNode(scenarioStore.getAttributesList());
ObjectNode topographyNode = StateJsonConverter.serializeTopographyToNode(scenarioStore.getTopography());
return new ScenarioStore(scenarioStore.name, scenarioStore.description, scenarioStore.mainModel,
return new ScenarioStore(scenarioStore.getName(), scenarioStore.getDescription(), scenarioStore.getMainModel(),
StateJsonConverter.deserializeAttributesListFromNode(attributesModelNode),
StateJsonConverter.deserializeAttributesSimulationFromNode(attributesSimulationNode),
StateJsonConverter.deserializeTopographyFromNode(topographyNode));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment