package com.datascience.datastoring.datamodels.memory;
import com.datascience.core.base.AssignedLabel;
import com.datascience.core.base.LObject;
import com.datascience.core.nominal.PureNominalData;
import com.datascience.core.nominal.CategoryValue;
import com.datascience.core.nominal.INominalData;
import com.datascience.utils.CostMatrix;
import java.util.*;
/**
* User: artur
*/
public class InMemoryNominalData extends InMemoryData<String> implements INominalData {
protected PureNominalData jobData;
public InMemoryNominalData(){
jobData = new PureNominalData();
}
public InMemoryNominalData(InMemoryData<String> data){
jobData = new PureNominalData();
this.assigns = data.assigns;
this.workers = data.workers;
this.mapWorkers = data.mapWorkers;
this.mapObjects = data.mapObjects;
this.objects = data.objects;
this.goldObjects = data.goldObjects;
this.evaluationObjects = data.evaluationObjects;
this.datums = data.datums;
this.workersAssigns = data.workersAssigns;
}
@Override
public Collection<String> getCategories() {
return jobData.getCategories();
}
@Override
public boolean arePriorsFixed() {
return jobData.arePriorsFixed();
}
@Override
public double getCategoryPrior(String name) {
return jobData.getCategoryPrior(name);
}
@Override
public Map<String, Double> getCategoryPriors() {
return jobData.getCategoryPriors();
}
@Override
public CostMatrix<String> getCostMatrix() {
return jobData.getCostMatrix();
}
@Override
public void initialize(Collection<String> categories, Collection<CategoryValue> priors, CostMatrix<String> costMatrix) {
jobData.initialize(categories, priors, costMatrix);
}
@Override
public void addAssign(AssignedLabel<String> assign){
jobData.checkForCategoryExist(assign.getLabel());
super.addAssign(assign);
}
@Override
public void addObject(LObject<String> object){
if (object.isGold()) jobData.checkForCategoryExist(object.getGoldLabel());
if (object.isEvaluation()) jobData.checkForCategoryExist(object.getEvaluationLabel());
super.addObject(object);
}
}