Package com.sissi.pipeline.in.iq.roster.get

Source Code of com.sissi.pipeline.in.iq.roster.get.RosterGetProcessor

package com.sissi.pipeline.in.iq.roster.get;

import com.sissi.context.JID;
import com.sissi.context.JIDContext;
import com.sissi.pipeline.in.ProxyProcessor;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.ProtocolType;
import com.sissi.protocol.iq.roster.GroupItem;
import com.sissi.protocol.iq.roster.Roster;
import com.sissi.ucenter.relation.Relation;
import com.sissi.ucenter.relation.roster.RosterRelation;
import com.sissi.ucenter.vcard.VCardContext;

/**
* Roster列表
*
* @author kim 2013-10-31
*/
public class RosterGetProcessor extends ProxyProcessor {

  private final VCardContext vcardContext;

  public RosterGetProcessor(VCardContext vcardContext) {
    super();
    this.vcardContext = vcardContext;
  }

  @Override
  public boolean input(JIDContext context, Protocol protocol) {
    context.write(this.prepare(context, protocol.cast(Roster.class).clear()).parent().reply().setType(ProtocolType.RESULT));
    return false;
  }

  private Roster prepare(JIDContext context, Roster roster) {
    for (Relation each : super.myRelations(context.jid())) {
      JID to = super.build(each.jid());
      roster.add(new GroupItem(each.cast(RosterRelation.class)).nickname(this.vcardContext.pull(to, VCardContext.FIELD_NICK).getValue(), to.user()));
    }
    return roster;
  }
}
TOP

Related Classes of com.sissi.pipeline.in.iq.roster.get.RosterGetProcessor

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.