package name.abuchen.portfolio.checks.impl; import java.util.Collections; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import name.abuchen.portfolio.Messages; import name.abuchen.portfolio.checks.Check; import name.abuchen.portfolio.checks.Issue; import name.abuchen.portfolio.model.Client; import name.abuchen.portfolio.model.Security; /** * Adds securities which are only present in transactions to the list of * securities. Before #602 it could happen that the user imports only the * transaction from PDF but explicitly does not import the newly created * security. That created orphaned securities. */ public class FixOrphanedSecurtiesCheck implements Check { @Override public List<Issue> execute(Client client) { Set<Security> missing = client.getPortfolios().stream() // .flatMap(p -> p.getTransactions().stream()) // .map(t -> t.getSecurity()) // .filter(s -> !client.getSecurities().contains(s)) // .collect(Collectors.toSet()); missing.stream().forEach(security -> { security.setName(security.getName() + Messages.LabelSuffixEntryCorrected); client.addSecurity(security); }); return Collections.emptyList(); } }