Attempt to reduce TableContainer#parseHtml complexity

This commit is contained in:
Rsl1122 2018-08-12 10:18:07 +03:00
parent 0393bcef61
commit 2dcc69fc92
2 changed files with 42 additions and 40 deletions

View File

@ -48,25 +48,25 @@ public class InspectContainer {
} }
public final String parseHtml() { public final String parseHtml() {
StringBuilder html = new StringBuilder(); StringBuilder parsed = new StringBuilder();
if (!values.isEmpty()) { if (!values.isEmpty()) {
html.append("<div class=\"body\">"); parsed.append("<div class=\"body\">");
for (Map.Entry<String, String> entry : values.entrySet()) { for (Map.Entry<String, String> entry : values.entrySet()) {
html.append("<p>").append(entry.getKey()).append(": ").append(entry.getValue()).append("</p>"); parsed.append("<p>").append(entry.getKey()).append(": ").append(entry.getValue()).append("</p>");
} }
html.append("</div>"); parsed.append("</div>");
} }
for (Map.Entry<String, String> entry : this.html.entrySet()) { for (Map.Entry<String, String> entry : this.html.entrySet()) {
html.append(entry.getValue()); parsed.append(entry.getValue());
} }
for (Map.Entry<String, TableContainer> entry : tables.entrySet()) { for (Map.Entry<String, TableContainer> entry : tables.entrySet()) {
html.append(entry.getValue().parseHtml()); parsed.append(entry.getValue().parseHtml());
} }
return html.toString(); return parsed.toString();
} }
/** /**

View File

@ -40,12 +40,10 @@ public class TableContainer {
} }
public TableContainer(boolean players, String... header) { public TableContainer(boolean players, String... header) {
this.header = FormatUtils.mergeArrays( this(FormatUtils.mergeArrays(
new String[]{Icon.called("user").build() + " Player"}, new String[]{Icon.called("user").build() + " Player"},
header header
); ));
this.formatters = new Formatter[this.header.length];
values = new ArrayList<>();
} }
public final void addRow(Serializable... values) { public final void addRow(Serializable... values) {
@ -60,13 +58,22 @@ public class TableContainer {
} }
public final String parseBody() { public final String parseBody() {
StringBuilder body = new StringBuilder();
if (values.isEmpty()) { if (values.isEmpty()) {
addRow("No Data"); addRow("No Data");
} }
for (Serializable[] row : values) { return Html.TABLE_BODY.parse(buildBody());
}
private String buildBody() {
StringBuilder body = new StringBuilder();
for (Serializable[] row : values) {
appendRow(body, row);
}
return body.toString();
}
private void appendRow(StringBuilder body, Serializable[] row) {
int maxIndex = row.length - 1; int maxIndex = row.length - 1;
body.append("<tr>"); body.append("<tr>");
for (int i = 0; i < header.length; i++) { for (int i = 0; i < header.length; i++) {
@ -85,11 +92,6 @@ public class TableContainer {
} }
} }
body.append("</tr>"); body.append("</tr>");
}
return Html.TABLE_BODY.parse(body.toString());
} }
public final void setColor(String color) { public final void setColor(String color) {
@ -97,12 +99,12 @@ public class TableContainer {
} }
public final String parseHeader() { public final String parseHeader() {
StringBuilder header = new StringBuilder("<thead" + (color != null ? " class=\"bg-" + color + "\"" : "") + "><tr>"); StringBuilder parsedHeader = new StringBuilder("<thead" + (color != null ? " class=\"bg-" + color + "\"" : "") + "><tr>");
for (String title : this.header) { for (String title : header) {
header.append("<th>").append(title).append("</th>"); parsedHeader.append("<th>").append(title).append("</th>");
} }
header.append("</tr></thead>"); parsedHeader.append("</tr></thead>");
return header.toString(); return parsedHeader.toString();
} }
public final void setFormatter(int index, Formatter formatter) { public final void setFormatter(int index, Formatter formatter) {