package com.sissi.protocol.muc; import java.util.HashMap; import java.util.Map; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; /** * @author kim 2014年2月19日 */ @XmlType(namespace = XMuc.XMLNS) @XmlRootElement(name = ItemStatus.NAME) public class ItemStatus { public final static String NAME = "status"; private static Map<String, ItemStatus> mapping = new HashMap<String, ItemStatus>(); private String code; public ItemStatus() { super(); } public ItemStatus(String code) { super(); this.code = code; } @XmlAttribute public String getCode() { return this.code; } public static ItemStatus parse(String code) { ItemStatus status = ItemStatus.mapping.get(code); return status != null ? status : ItemStatus.cached(code); } private static ItemStatus cached(String code) { ItemStatus status = new ItemStatus(code); ItemStatus.mapping.put(code, status); return status; } }