package com.sissi.ucenter.relation.muc.validate.validator; import com.sissi.context.JID; import com.sissi.context.JIDContext; import com.sissi.protocol.ProtocolType; import com.sissi.protocol.error.ServerError; import com.sissi.protocol.error.detail.ItemNotFound; import com.sissi.ucenter.relation.muc.validate.ItemStatus; import com.sissi.ucenter.relation.muc.validate.ItemValidator; import com.sissi.ucenter.relation.muc.validate.status.ValidItemStatus; import com.sissi.ucenter.relation.muc.validate.status.WrongItemStatus; import com.sissi.ucenter.vcard.VCardContext; /** * Item存在性校验 * * @author kim 2014年4月19日 */ public class ItemNotFoundValidator implements ItemValidator { private final ItemStatus status = new WrongItemStatus(new ServerError().type(ProtocolType.CANCEL).add(ItemNotFound.DETAIL)); private final VCardContext vcardContext; public ItemNotFoundValidator(VCardContext vcardContext) { super(); this.vcardContext = vcardContext; } /* * Item必须存在VCard * * @see com.sissi.ucenter.relation.muc.validate.ItemValidator#valdate(com.sissi.context.JIDContext, com.sissi.context.JID, com.sissi.context.JID) */ @Override public ItemStatus valdate(JIDContext invoker, JID group, JID item) { return this.vcardContext.exists(item) ? ValidItemStatus.INSTANCE : this.status; } }