package pspnetparty.client.swt.config; import java.util.Collections; import java.util.LinkedHashSet; import java.util.Set; import pspnetparty.lib.IniSection; public class IniUserProfile { public static final String SECTION = "UserProfile"; public static final int URL_MAX_LENGTH = 100; private static final String USER_NAME = "UserName"; private static final String URL = "URL"; private static final String ICON_URL = "IconURL"; private static final String PROFILE = "Profile"; private static final String CIRCLES = "Circles"; private IniSection section; public IniUserProfile(IniSection section) { this.section = section; userName = section.get(USER_NAME, ""); url = section.get(URL, ""); iconUrl = section.get(ICON_URL, ""); String profileEscaped = section.get(PROFILE, ""); profile = profileEscaped.replace("\\n", "\n"); circles = new LinkedHashSet<String>(); String circlesEscaped = section.get(CIRCLES, ""); for (String circle : circlesEscaped.split("\\\\n")) { circles.add(circle); } } private String userName; private String url; private String iconUrl; private String profile; private Set<String> circles; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; section.set(USER_NAME, userName); } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; section.set(URL, url); } public String getIconUrl() { return iconUrl; } public void setIconUrl(String iconUrl) { this.iconUrl = iconUrl; section.set(ICON_URL, iconUrl); } public String getProfile() { return profile; } public void setProfile(String profile) { this.profile = profile; section.set(PROFILE, profile.replace("\r", "").replace("\n", "\\n")); } public Set<String> getCircles() { return Collections.unmodifiableSet(circles); } public void setCircles(Set<String> circles) { if (this.circles.equals(circles)) return; this.circles.clear(); this.circles.addAll(circles); StringBuilder sb = new StringBuilder(); for (String circle : circles) { sb.append(circle).append("\\n"); } if (sb.length() > 0) sb.delete(sb.length() - 2, sb.length()); section.set(CIRCLES, sb.toString()); } }