package com.sissi.pipeline.in.iq.bind;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.in.ProxyProcessor;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.Stream;
import com.sissi.protocol.message.Body;
import com.sissi.protocol.message.Message;
import com.sissi.protocol.message.MessageType;
/**
* Resource重复资源绑定则终止其他JIDContext
*
* @author kim 2013-10-29
*/
public class BindAddressCloseOthersProcessor extends ProxyProcessor {
private final Body body;
/**
* JIDContext下线提示, Message.type = headline
*
* @param content
*/
public BindAddressCloseOthersProcessor(String content) {
super();
this.body = new Body(content);
}
@Override
public boolean input(JIDContext context, Protocol protocol) {
return super.resources(context.jid(), true).isEmpty() ? true : super.findOne(context.jid(), true, true).write(new Message().body(this.body).setType(MessageType.HEADLINE).setFrom(context.domain())).write(Stream.closeGraceFully()).close();
}
}