package com.sissi.pipeline.in.iq.disco.muc; import com.sissi.context.JID; import com.sissi.context.JIDBuilder; import com.sissi.pipeline.in.ClassMatcher; import com.sissi.protocol.Protocol; import com.sissi.protocol.iq.disco.Disco; /** * <iq to='MUC JID' type='get'><query xmlns='http://jabber.org/protocol/disco#info(disco#items)'/></iq> * * @author kim 2014年3月12日 */ public class DiscoResourceMatcher extends ClassMatcher { private final JIDBuilder jidBuilder; private final boolean resource; /** * @param clazz * @param jidBuilder * @param resource 是否包含资源 */ public DiscoResourceMatcher(Class<? extends Disco> clazz, JIDBuilder jidBuilder, boolean resource) { super(clazz); this.jidBuilder = jidBuilder; this.resource = resource; } public boolean match(Protocol protocol) { return super.match(protocol) && this.support(this.jidBuilder.build(protocol.parent().getTo())); } private boolean support(JID jid) { return jid.isGroup() && jid.isBare() == this.resource; } }