// Modified or written by Luca Marrocco for inclusion with hoptoad.
// Copyright (c) 2009 Luca Marrocco.
// Licensed under the Apache License, Version 2.0 (the "License")
package hoptoad;
import java.util.*;
public class NoticeApi1 {
private final StringBuilder yaml = new StringBuilder();
public NoticeApi1(final HoptoadNotice notice) {
notice();
{
session();
api_key(notice.apiKey());
error_message(notice.errorMessage());
error_class(notice.errorClass());
request();
environment(notice.environment());
backtraces();
{
for (final String backtrace : notice.backtrace()) {
backtrace(backtrace);
}
}
}
}
private void api_key(final String string) {
append(" api_key: " + string + "\n");
}
private void append(final Map<String, ?> map) {
final StringBuilder stringBuilder = new StringBuilder();
for (final String key : map.keySet()) {
stringBuilder.append(" " + key + ": " + map.get(key) + ",\n");
}
stringBuilder.append("\n");
append(stringBuilder.toString().replaceAll(",\n\n$", "\n"));
}
private void append(final String string) {
yaml.append(string);
}
private void backtrace(final String string) {
append(" - " + string + "\n");
}
private void backtraces() {
append(" backtrace: \n");
}
private void environment(final Map map) {
append(" environment: {\n");
append(map);
append(" }\n");
}
private void error_class(final String string) {
append(" error_class: " + string + "\n");
}
private void error_message(final String string) {
append(" error_message: " + string + "\n");
}
private void notice() {
append("notice: \n");
}
private void request() {
append(" request: {}\n\n");
}
private void session() {
append(" session: {}\n\n");
}
@Override
public String toString() {
return yaml.toString();
}
}