package name.abuchen.portfolio.model;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class Portfolio implements Named, TransactionOwner<PortfolioTransaction>
{
private String uuid;
private String name;
private String note;
private boolean isRetired = false;
private Account referenceAccount;
private List<PortfolioTransaction> transactions = new ArrayList<PortfolioTransaction>();
public Portfolio()
{
this.uuid = UUID.randomUUID().toString();
}
public String getUUID()
{
return uuid;
}
/* package */void generateUUID()
{
// needed to assign UUIDs when loading older versions from XML
uuid = UUID.randomUUID().toString();
}
@Override
public String getName()
{
return name;
}
@Override
public void setName(String name)
{
this.name = name;
}
@Override
public String getNote()
{
return note;
}
@Override
public void setNote(String note)
{
this.note = note;
}
public boolean isRetired()
{
return isRetired;
}
public void setRetired(boolean isRetired)
{
this.isRetired = isRetired;
}
public Account getReferenceAccount()
{
return referenceAccount;
}
public void setReferenceAccount(Account referenceAccount)
{
this.referenceAccount = referenceAccount;
}
@Override
public List<PortfolioTransaction> getTransactions()
{
return transactions;
}
@Override
public void addTransaction(PortfolioTransaction transaction)
{
this.transactions.add(transaction);
}
@Override
public void shallowDeleteTransaction(PortfolioTransaction transaction, Client client)
{
this.transactions.remove(transaction);
client.getPlans().stream().forEach(plan -> plan.removeTransaction(transaction));
}
public void addAllTransaction(List<PortfolioTransaction> transactions)
{
this.transactions.addAll(transactions);
}
@Override
public String toString()
{
return name;
}
}