package com.datascience.datastoring.datamodels.kv; import com.datascience.core.base.AssignedLabel; import com.datascience.core.base.LObject; import com.datascience.core.base.Worker; import com.datascience.core.nominal.PureNominalData; import com.datascience.core.nominal.CategoryValue; import com.datascience.core.nominal.INominalData; import com.datascience.utils.CostMatrix; import com.datascience.datastoring.adapters.kv.ISafeKVStorage; import java.util.Collection; import java.util.Map; /** * @Author: konrad */ public class KVNominalData extends KVData<String> implements INominalData{ protected PureNominalData jobData; public KVNominalData(ISafeKVStorage<Collection<AssignedLabel<String>>> workersAssigns, ISafeKVStorage<Collection<AssignedLabel<String>>> objectsAssigns, ISafeKVStorage<Collection<LObject<String>>> objects, ISafeKVStorage<Collection<LObject<String>>> goldObjects, ISafeKVStorage<Collection<LObject<String>>> evaluationObjects, ISafeKVStorage<Collection<Worker>> workers){ super(workersAssigns, objectsAssigns, objects, goldObjects, evaluationObjects, workers); jobData = new PureNominalData(); } @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); } }