package com.sissi.pipeline.in.iq.block;
import java.util.List;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.in.ProxyProcessor;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.iq.block.BlockListItem;
import com.sissi.protocol.iq.block.UnBlock;
import com.sissi.ucenter.block.BlockContext;
/**
* 黑名单移除
*
* @author kim 2013年12月6日
*/
public class UnBlockProcessor extends ProxyProcessor {
private final BlockContext blockContext;
public UnBlockProcessor(BlockContext blockContext) {
super();
this.blockContext = blockContext;
}
/*
* Unblock不含Item则表示全部移除
*
* @see com.sissi.pipeline.Input#input(com.sissi.context.JIDContext, com.sissi.protocol.Protocol)
*/
@Override
public boolean input(JIDContext context, Protocol protocol) {
UnBlock ub = protocol.cast(UnBlock.class);
return ub.unBlockAll() ? this.unblockAndReturn(context) : this.unblockAndReturn(context, ub.getItem());
}
private boolean unblockAndReturn(JIDContext context, List<BlockListItem> item) {
for (BlockListItem each : item) {
this.blockContext.unblock(context.jid(), super.build(each.getJid()));
}
return true;
}
private boolean unblockAndReturn(JIDContext context) {
this.blockContext.unblock(context.jid());
return true;
}
}