package name.abuchen.portfolio.ui.wizards.datatransfer;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
import name.abuchen.portfolio.datatransfer.Extractor;
import name.abuchen.portfolio.datatransfer.Extractor.Item;
import name.abuchen.portfolio.datatransfer.ImportAction;
import name.abuchen.portfolio.datatransfer.ImportAction.Status;
public class ExtractedEntry
{
private final Extractor.Item item;
private Boolean isImported = null;
private Status.Code maxCode = Status.Code.OK;
private List<Status> status = new ArrayList<>();
public ExtractedEntry(Item item)
{
this.item = item;
}
public Extractor.Item getItem()
{
return item;
}
public void setImported(boolean isImported)
{
this.isImported = isImported;
}
public boolean isImported()
{
// do not import if explicitly excluded by the user
if (isImported != null && !isImported.booleanValue())
return false;
// otherwise import if either the status is OK or the user explicitly
// overrides warnings
return maxCode == Status.Code.OK
|| (maxCode == Status.Code.WARNING && isImported != null && isImported.booleanValue());
}
public void addStatus(ImportAction.Status status)
{
this.status.add(status);
if (status.getCode().isHigherSeverityAs(maxCode))
maxCode = status.getCode();
}
public Stream<Status> getStatus()
{
return this.status.stream();
}
public Status.Code getMaxCode()
{
return maxCode;
}
public void clearStatus()
{
this.status.clear();
this.maxCode = Status.Code.OK;
}
}