Package com.sissi.pipeline.in

Source Code of com.sissi.pipeline.in.ChainedFinder$NothingProcessor

package com.sissi.pipeline.in;

import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.sissi.context.JIDContext;
import com.sissi.pipeline.Input;
import com.sissi.pipeline.InputCondition;
import com.sissi.pipeline.InputFinder;
import com.sissi.protocol.Protocol;

/**
* @author kim 2013-11-4
*/
public class ChainedFinder implements InputFinder {

  private final Log log = LogFactory.getLog(this.getClass());

  private final Input nothing = new NothingProcessor();

  private final List<InputCondition> conditions;

  public ChainedFinder(List<InputCondition> conditions) {
    this.conditions = conditions;
  }

  @Override
  public Input find(Protocol protocol) {
    for (InputCondition each : this.conditions) {
      if (each.matcher().match(protocol)) {
        Input input = each.input();
        this.log.debug("Input " + input.getClass() + " for " + protocol.getClass());
        return each.input();
      }
    }
    return this.nothing;
  }

  private class NothingProcessor implements Input {

    private final Log log = LogFactory.getLog(this.getClass());

    private NothingProcessor() {

    }

    @Override
    public boolean input(JIDContext context, Protocol current) {
      this.log.warn("Nothing on " + current.getClass() + ", please check");
      return false;
    }
  }
}
TOP

Related Classes of com.sissi.pipeline.in.ChainedFinder$NothingProcessor

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.