Package com.sissi.pipeline.in.iq.block

Source Code of com.sissi.pipeline.in.iq.block.UnBlockProcessor

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;
  }
}
TOP

Related Classes of com.sissi.pipeline.in.iq.block.UnBlockProcessor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.