package cn.newgxu.bbs.common; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang.StringUtils; import cn.newgxu.bbs.common.exception.BBSExceptionMessage; /** * * @author polly * @since 4.0.0 * @version $Revision 1.1$ */ public class MessageList { private static final String DEFAULT_URL = "/"; private String url = DEFAULT_URL; private List<String> messageList = new LinkedList<String>(); public boolean isEmpty() { return messageList.isEmpty(); } public int size() { return messageList.size(); } public List<String> getMessages() { return messageList; } public void setUrl(Object... args) { List<Pair> params = new LinkedList<Pair>(); for (Object o : args) { if (o instanceof String) { url = (String) o; } else if (o instanceof Pair) { params.add((Pair) o); } } _setUrl(params); } private void _setUrl(List<Pair> params) { for (Pair pair : params) { url = StringUtils.replace(url, pair.regex, pair.value); } } public void addMessage(Object... args) { String msg = ""; List<Pair> params = new LinkedList<Pair>(); for (Object o : args) { if (o instanceof String) { msg = (String) o; } else if (o instanceof Pair) { params.add((Pair) o); } } _addMessage(msg, params); } private void _addMessage(String msg, List<Pair> params) { for (Pair pair : params) { msg = StringUtils.replace(msg, pair.regex, pair.value); } messageList.add(msg); } public static Pair P(String code, String value) { return new Pair(code, value); } public static Pair P(String code, int value) { return new Pair(code, String.valueOf(value)); } public static Pair P(String code, boolean value) { return new Pair(code, String.valueOf(value)); } public static Pair P(String code, long value) { return new Pair(code, String.valueOf(value)); } public static Pair P(String code, double value) { return new Pair(code, String.valueOf(value)); } public static class Pair { String regex; String value; public Pair(String regex, String value) { this.regex = regex; this.value = value; } public String toString() { return "" + regex + "=>" + value; } } public String getUrl() { return url; } public static MessageList getSessionIsInvalidateMessageList() { MessageList m = new MessageList(); m.addMessage(BBSExceptionMessage.MESSAGE_SESSION_IS_INVALIDATED); return m; } public static MessageList getSayHelloMessageList() { MessageList m = new MessageList(); m.addMessage("Hello! What a nice day!"); return m; } }