package name.abuchen.portfolio.ui.log;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class LogEntry
{
private int severity;
private Date date;
private String message;
private String stacktrace;
private List<LogEntry> children;
public LogEntry(int severity, Date date, String message)
{
this.severity = severity;
this.date = date;
this.message = message;
}
public int getSeverity()
{
return severity;
}
public Date getDate()
{
return date;
}
public String getMessage()
{
return message;
}
public String getStacktrace()
{
return stacktrace;
}
public void setStacktrace(String stacktrace)
{
this.stacktrace = stacktrace;
}
public List<LogEntry> getChildren()
{
return children;
}
public void addChild(LogEntry entry)
{
if (children == null)
children = new ArrayList<LogEntry>();
children.add(entry);
}
public String getText()
{
StringBuilder buffer = new StringBuilder();
appendText(buffer);
return buffer.toString();
}
private void appendText(StringBuilder buffer)
{
buffer.append(getDate()).append('\n');
buffer.append(getMessage()).append('\n');
if (getStacktrace() != null)
buffer.append('\n').append(getStacktrace()).append('\n');
if (getChildren() != null)
{
buffer.append("\n------\n"); //$NON-NLS-1$
for (LogEntry child : getChildren())
child.appendText(buffer);
buffer.append("\n------\n"); //$NON-NLS-1$
}
}
}