Package com.sissi.pipeline.in.stream

Source Code of com.sissi.pipeline.in.stream.StreamFeatureAuthProcessor

package com.sissi.pipeline.in.stream;

import java.util.Set;

import com.sissi.context.JIDContext;
import com.sissi.pipeline.Input;
import com.sissi.protocol.Feature;
import com.sissi.protocol.Protocol;
import com.sissi.protocol.Stream;
import com.sissi.protocol.feature.Mechanisms;
import com.sissi.protocol.feature.Register;
import com.sissi.ucenter.access.AuthMechanism;

/**
* @author kim 2013-10-24
*/
public class StreamFeatureAuthProcessor implements Input {

  private final Feature[] features;

  public StreamFeatureAuthProcessor(Set<AuthMechanism> mechanisms) {
    super();
    Mechanisms feature = new Mechanisms();
    for (AuthMechanism mechanism : mechanisms) {
      feature.add(mechanism.support());
    }
    this.features = new Feature[] { feature, Register.FEATURE };
  }

  @Override
  public boolean input(JIDContext context, Protocol protocol) {
    return !context.auth() ? this.writeFeature(protocol.cast(Stream.class)) : true;
  }

  private boolean writeFeature(Stream stream) {
    stream.addFeature(this.features);
    return true;
  }

}
TOP

Related Classes of com.sissi.pipeline.in.stream.StreamFeatureAuthProcessor

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.