Skip to content
Snippets Groups Projects
Commit f5dcb181 authored by Johannes Mey's avatar Johannes Mey
Browse files

use IN_CONSTRUCTION state in all incremental JastAdd drivers when deserializing the model

parent 0f89e4ee
Branches
No related tags found
No related merge requests found
...@@ -6,21 +6,14 @@ import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer; ...@@ -6,21 +6,14 @@ import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer;
import hu.bme.mit.trainbenchmark.benchmark.driver.Driver; import hu.bme.mit.trainbenchmark.benchmark.driver.Driver;
import java.io.File; import java.io.File;
import java.io.IOException;
public class JastaddDriver extends Driver { public class JastaddDriver extends Driver {
RailwayContainer root;
private int idCounter = 0;
public boolean flushCaches() {
return flushCaches;
}
private final boolean flushCaches; private final boolean flushCaches;
private final ASTState.Trace.Receiver receiver; private final ASTState.Trace.Receiver receiver;
private RailwayContainer root;
private int idCounter = 0;
public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) { public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) {
super(); super();
...@@ -42,10 +35,12 @@ public class JastaddDriver extends Driver { ...@@ -42,10 +35,12 @@ public class JastaddDriver extends Driver {
} }
@Override @Override
public void read(final String modelPath) throws IOException { public void read(final String modelPath) {
File modelFile = new File(modelPath); File modelFile = new File(modelPath);
new RailwayContainer().state().enterConstruction();
root = JsonDeserializer.read(modelFile); root = JsonDeserializer.read(modelFile);
root.state().exitConstruction();
// enable tracing if there is a receiver // enable tracing if there is a receiver
if (receiver != null) { if (receiver != null) {
......
package de.tudresden.inf.st.train.jastadd.driver;
import de.tudresden.inf.st.train.jastadd.ast.ASTState;
import de.tudresden.inf.st.train.jastadd.ast.RailwayContainer;
import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer;
import hu.bme.mit.trainbenchmark.benchmark.driver.Driver;
import java.io.File;
public class JastaddDriver extends Driver {
private final boolean flushCaches;
private final ASTState.Trace.Receiver receiver;
private RailwayContainer root;
private int idCounter = 0;
public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) {
super();
this.flushCaches = flushCaches;
this.receiver = receiver;
}
public static JastaddDriver create(boolean flushCaches, ASTState.Trace.Receiver receiver) {
return new JastaddDriver(flushCaches, receiver);
}
public int nextId() {
idCounter--;
return idCounter;
}
public RailwayContainer getModel() {
return root;
}
@Override
public void read(final String modelPath) {
File modelFile = new File(modelPath);
root = JsonDeserializer.read(modelFile);
// enable tracing if there is a receiver
if (receiver != null) {
getModel().trace().setReceiver(receiver);
}
}
@Override
public String getPostfix() {
return "-jastadd-manual.json";
}
public void flushCache() {
if (flushCaches) {
getModel().flushTreeCache();
}
}
}
...@@ -6,15 +6,15 @@ import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer; ...@@ -6,15 +6,15 @@ import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer;
import hu.bme.mit.trainbenchmark.benchmark.driver.Driver; import hu.bme.mit.trainbenchmark.benchmark.driver.Driver;
import java.io.File; import java.io.File;
import java.io.IOException;
public class JastaddDriver extends Driver { public class JastaddDriver extends Driver {
private final boolean flushCaches; private final boolean flushCaches;
private final ASTState.Trace.Receiver receiver; private final ASTState.Trace.Receiver receiver;
RailwayContainer root; private RailwayContainer root;
private int idCounter = 0; private int idCounter = 0;
public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) { public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) {
super(); super();
this.flushCaches = flushCaches; this.flushCaches = flushCaches;
...@@ -25,10 +25,6 @@ public class JastaddDriver extends Driver { ...@@ -25,10 +25,6 @@ public class JastaddDriver extends Driver {
return new JastaddDriver(flushCaches, receiver); return new JastaddDriver(flushCaches, receiver);
} }
public boolean flushCaches() {
return flushCaches;
}
public int nextId() { public int nextId() {
idCounter--; idCounter--;
return idCounter; return idCounter;
...@@ -39,10 +35,12 @@ public class JastaddDriver extends Driver { ...@@ -39,10 +35,12 @@ public class JastaddDriver extends Driver {
} }
@Override @Override
public void read(final String modelPath) throws IOException { public void read(final String modelPath) {
File modelFile = new File(modelPath); File modelFile = new File(modelPath);
new RailwayContainer().state().enterConstruction();
root = JsonDeserializer.read(modelFile); root = JsonDeserializer.read(modelFile);
root.state().exitConstruction();
// enable tracing if there is a receiver // enable tracing if there is a receiver
if (receiver != null) { if (receiver != null) {
......
package de.tudresden.inf.st.train.jastadd.driver;
import de.tudresden.inf.st.train.jastadd.ast.ASTState;
import de.tudresden.inf.st.train.jastadd.ast.RailwayContainer;
import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer;
import hu.bme.mit.trainbenchmark.benchmark.driver.Driver;
import java.io.File;
public class JastaddDriver extends Driver {
private final boolean flushCaches;
private final ASTState.Trace.Receiver receiver;
private RailwayContainer root;
private int idCounter = 0;
public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) {
super();
this.flushCaches = flushCaches;
this.receiver = receiver;
}
public static JastaddDriver create(boolean flushCaches, ASTState.Trace.Receiver receiver) {
return new JastaddDriver(flushCaches, receiver);
}
public int nextId() {
idCounter--;
return idCounter;
}
public RailwayContainer getModel() {
return root;
}
@Override
public void read(final String modelPath) {
File modelFile = new File(modelPath);
new RailwayContainer().state().enterConstruction();
root = JsonDeserializer.read(modelFile);
root.state().exitConstruction();
// enable tracing if there is a receiver
if (receiver != null) {
getModel().trace().setReceiver(receiver);
}
}
@Override
public String getPostfix() {
return "-jastadd-manual.json";
}
public void flushCache() {
if (flushCaches) {
getModel().flushTreeCache();
}
}
}
...@@ -3,8 +3,6 @@ package de.tudresden.inf.st.train.jastadd.driver; ...@@ -3,8 +3,6 @@ package de.tudresden.inf.st.train.jastadd.driver;
import de.tudresden.inf.st.train.jastadd.ast.ASTState; import de.tudresden.inf.st.train.jastadd.ast.ASTState;
import de.tudresden.inf.st.train.jastadd.ast.DeserializationException; import de.tudresden.inf.st.train.jastadd.ast.DeserializationException;
import de.tudresden.inf.st.train.jastadd.ast.RailwayContainer; import de.tudresden.inf.st.train.jastadd.ast.RailwayContainer;
import de.tudresden.inf.st.train.jastadd.ast.SerializationException;
import de.tudresden.inf.st.train.jastadd.driver.deserializer.JsonDeserializer;
import hu.bme.mit.trainbenchmark.benchmark.driver.Driver; import hu.bme.mit.trainbenchmark.benchmark.driver.Driver;
import java.io.File; import java.io.File;
...@@ -13,16 +11,10 @@ import java.io.IOException; ...@@ -13,16 +11,10 @@ import java.io.IOException;
public class JastaddDriver extends Driver { public class JastaddDriver extends Driver {
RailwayContainer root;
private int idCounter = 0;
public boolean flushCaches() {
return flushCaches;
}
private final boolean flushCaches; private final boolean flushCaches;
private final ASTState.Trace.Receiver receiver; private final ASTState.Trace.Receiver receiver;
private RailwayContainer root;
private int idCounter = 0;
public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) { public JastaddDriver(boolean flushCaches, ASTState.Trace.Receiver receiver) {
super(); super();
...@@ -48,7 +40,9 @@ public class JastaddDriver extends Driver { ...@@ -48,7 +40,9 @@ public class JastaddDriver extends Driver {
File modelFile = new File(modelPath); File modelFile = new File(modelPath);
try { try {
new RailwayContainer().state().enterConstruction();
root = RailwayContainer.deserialize(modelFile); root = RailwayContainer.deserialize(modelFile);
root.state().exitConstruction();
} catch (DeserializationException e) { } catch (DeserializationException e) {
throw new IOException(e); throw new IOException(e);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment