Files
School/Anul 2/Semestrul 1/Metode avansate de programare/Interpretor/Repositories/Repository.java
T
2024-08-31 12:07:21 +03:00

52 lines
1.4 KiB
Java

package Repositories;
import Models.Program.ProgramState;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import Exceptions.BaseException;
public class Repository implements IRepository {
private List<ProgramState> programStates;
private String logFilePath;
public Repository() {
this.programStates = new ArrayList<ProgramState>();
this.logFilePath = "log.txt";
}
public Repository(String logFilePath) {
this.programStates = new ArrayList<ProgramState>();
this.logFilePath = logFilePath;
}
public void addProgramState(ProgramState programState) throws BaseException {
programState.typeCheck();
programStates.clear();
programStates.add(programState);
}
public List<ProgramState> getProgramStates() {
return programStates;
}
public void setProgramStates(List<ProgramState> programStates) {
this.programStates = programStates;
}
public void logProgramStateExecution(ProgramState state) throws BaseException{
try{
var logFile = new PrintWriter(new BufferedWriter(new FileWriter(this.logFilePath, true)));
logFile.println(state.toString());
logFile.close();
}
catch(Exception exception){
throw new BaseException(exception.getMessage());
}
}
}