package tv.dyndns.kishibe.qmaclone.client.packet;
import name.pehl.piriti.json.client.JsonReader;
import com.google.gwt.core.client.GWT;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
import com.google.gwt.user.client.rpc.IsSerializable;
public class PacketPlayerSummary implements IsSerializable {
public static class Json {
public interface PacketPlayerSummaryReader extends JsonReader<PacketPlayerSummary> {
}
public static final PacketPlayerSummaryReader READER = GWT
.create(PacketPlayerSummaryReader.class);
}
public String level;
public String name;
public String prefecture;
public int rating;
private transient SafeHtml html;
private transient SafeHtml resultHtml;
private transient SafeHtml gameHtml;
private static PacketPlayerSummary DEFAULT_PLAYER_SUMMARY = newDefaultPlayerSummary();
public SafeHtml asSafeHtml() {
if (html == null) {
StringBuilder sb = new StringBuilder().append(level).append(' ').append(name)
.append('\n').append(prefecture).append(' ').append(rating);
return html = new SafeHtmlBuilder().appendEscapedLines(sb.toString()).toSafeHtml();
}
return html;
}
public SafeHtml asResultSafeHtml() {
if (resultHtml == null) {
StringBuilder sb = new StringBuilder().append(level).append(' ').append(name);
resultHtml = SafeHtmlUtils.fromString(sb.toString());
}
return resultHtml;
}
public SafeHtml asGameSafeHtml() {
if (gameHtml == null) {
StringBuilder sb = new StringBuilder().append(level).append('\n').append(name);
gameHtml = new SafeHtmlBuilder().appendEscapedLines(sb.toString()).toSafeHtml();
}
return gameHtml;
}
private static PacketPlayerSummary newDefaultPlayerSummary() {
PacketPlayerSummary summary = new PacketPlayerSummary();
summary.level = "(COM)";
summary.name = "未初期化です";
summary.prefecture = "東京";
summary.rating = 1300;
return summary;
}
public static PacketPlayerSummary getDefaultPlayerSummary() {
return DEFAULT_PLAYER_SUMMARY;
}
@Override
public String toString() {
return asSafeHtml().asString();
}
}