package fr.inria.atlanmod.collaboro.backend;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Main class to configure a new language in the backend
*/
public class CollaboroLanguageConfig {
private String languageName;
private File historyFile;
private File ecoreFile;
private HashMap<String, List<File>> previousEcores;
private HashMap<String, List<File>> previousModels;
public CollaboroLanguageConfig(String languageName, File historyFile, File ecoreFile) {
if(historyFile == null || !historyFile.exists() || ecoreFile == null || !ecoreFile.exists())
throw new IllegalArgumentException("The files must exist");
if(languageName == null || languageName.equals(""))
throw new IllegalArgumentException("The name cannot be null or empty");
this.languageName = languageName;
this.historyFile = historyFile;
this.ecoreFile = ecoreFile;
this.previousEcores = new HashMap<>();
this.previousModels = new HashMap<>();
}
public String getLanguageName() {
return languageName;
}
public void setLanguageName(String languageName) {
this.languageName = languageName;
}
public File getHistoryFile() {
return historyFile;
}
public void setHistoryFile(File historyFile) {
this.historyFile = historyFile;
}
public File getEcoreFile() {
return ecoreFile;
}
public void setEcoreFile(File ecoreFile) {
this.ecoreFile = ecoreFile;
}
public List<File> getPreviousEcores(String version) {
return previousEcores.get(version);
}
public void addPreviousEcore(String version, File previousEcore) {
List<File> previousEcoresVersion = previousEcores.get(version);
if(previousEcoresVersion == null) {
previousEcoresVersion = new ArrayList<>();
}
previousEcoresVersion.add(previousEcore);
previousEcores.put(version, previousEcoresVersion);
}
public List<File> getPreviousModels(String version) {
return previousModels.get(version);
}
public void addPreviousModel(String version, File previousModel) {
List<File> previousModelsVersion = previousModels.get(version);
if(previousModelsVersion == null) {
previousModelsVersion = new ArrayList<>();
}
previousModelsVersion.add(previousModel);
previousModels.put(version, previousModelsVersion);
}
public HashMap<String, List<File>> getPreviousEcores() {
return previousEcores;
}
public HashMap<String, List<File>> getPreviousModels() {
return previousModels;
}
}