package org.molgenis.data.importer;
import java.util.*;
public class EntitiesValidationReportImpl implements EntitiesValidationReport
{
/**
* map of all sheets, and whether they are importable (recognized) or not
*/
private final Map<String, Boolean> sheetsImportable;
/**
* map of importable sheets and their importable fields
*/
private final Map<String, Collection<String>> fieldsImportable;
/**
* map of importable sheets and their unknown fields
*/
private final Map<String, Collection<String>> fieldsUnknown;
/**
* map of importable sheets and their required/missing fields
*/
private final Map<String, Collection<String>> fieldsRequired;
/**
* map of importable sheets and their available/optional fields
*/
private final Map<String, Collection<String>> fieldsAvailable;
/**
* import order of the sheets
*/
private final List<String> importOrder;
private final List<String> packages;
public EntitiesValidationReportImpl()
{
this.sheetsImportable = new LinkedHashMap<>();
this.fieldsImportable = new LinkedHashMap<>();
this.fieldsUnknown = new LinkedHashMap<>();
this.fieldsRequired = new LinkedHashMap<>();
this.fieldsAvailable = new LinkedHashMap<>();
importOrder = new ArrayList<>();
packages = new ArrayList<>();
}
@Override
public Map<String, Boolean> getSheetsImportable()
{
return sheetsImportable;
}
@Override
public Map<String, Collection<String>> getFieldsImportable()
{
return fieldsImportable;
}
@Override
public Map<String, Collection<String>> getFieldsUnknown()
{
return fieldsUnknown;
}
@Override
public Map<String, Collection<String>> getFieldsRequired()
{
return fieldsRequired;
}
@Override
public Map<String, Collection<String>> getFieldsAvailable()
{
return fieldsAvailable;
}
@Override
public List<String> getImportOrder()
{
return importOrder;
}
@Override
public boolean valid()
{
// determine if validation succeeded
boolean ok = true;
for (Boolean b : sheetsImportable.values())
{
ok = ok & b;
}
for (Collection<String> fields : getFieldsRequired().values())
{
ok = ok & (fields == null || fields.isEmpty());
}
return ok;
}
@Override
public List<String> getPackages()
{
return packages;
}
}