package com.datascience.datastoring.datamodels.full; import com.datascience.datastoring.datamodels.memory.*; import com.datascience.datastoring.jobs.IJobStorage; import com.datascience.datastoring.jobs.Job; import com.datascience.core.base.ContValue; import com.datascience.core.base.IData; import com.datascience.core.base.Project; import com.datascience.core.nominal.INominalData; import com.datascience.core.results.*; import com.datascience.datastoring.jobs.JobFactory; import com.google.gson.reflect.TypeToken; import java.lang.reflect.Type; import java.util.Collection; import java.util.HashMap; import java.util.Map; /** * * @author konrad */ public class MemoryJobStorage implements IJobStorage { private Map<String, Job> storage; public MemoryJobStorage(){ initialize(); } @Override public void setJobFactory(JobFactory jobFactory){ } @Override public <T extends Project> Job<T> get(String id) throws Exception { return storage.get(id); } @Override public <T extends Project> void add(Job<T> job) { storage.put(job.getId(), job); } @Override public void remove(Job job) { storage.remove(job.getId()); } @Override public void flush(Job job) { } @Override public void test() throws Exception { } @Override public void stop() throws Exception { } @Override public void clear(){ storage.clear(); } @Override public void initialize(){ storage = new HashMap<String, Job>(); } @Override public IData<ContValue> getContData(String id) { return new InMemoryData<ContValue>(); } @Override public INominalData getNominalData(String id) { return new InMemoryNominalData(); } @Override public IResults getContResults(String id) { return new InMemoryResults<ContValue, DatumContResults, WorkerContResults>( new ResultsFactory.DatumContResultFactory(), new ResultsFactory.WorkerContResultFactory()); } @Override public IResults getNominalResults(String id, Collection<String> categories){ ResultsFactory.WorkerResultNominalFactory wrnf = new ResultsFactory.WorkerResultNominalFactory(); wrnf.setCategories(categories); return new InMemoryResults<String, DatumResult, WorkerResult>(new ResultsFactory.DatumResultFactory(), wrnf); } @Override public NominalModel getNominalModel(String id, Type t){ if (t.equals(new TypeToken<NominalModel>(){}.getType())) return new NominalModel(); else return new IncrementalNominalModel(); } @Override public String toString(){ return "MEMORY_FULL"; } }