// Path: monica-cluster/src/main/java/monica/cluster/Parser.java
// public interface Parser {
// 	public void doParse(Rule rule);
// 
// 	public boolean isExpected();
// }
// 
// Path: monica-cluster/src/main/java/monica/cluster/router/parse/object/Operator.java
// public enum Operator {
// 	INCLUDE, EXCLUDE
// }
// 
// Path: monica-cluster/src/main/java/monica/cluster/router/parse/object/Rule.java
// public class Rule implements Comparable<Rule> {
// 	private Host source;
// 	private Host destination;
// 	private int priority;
// 
// 	public Host getSource() {
// 		return source;
// 	}
// 
// 	public void setSource(Host source) {
// 		this.source = source;
// 	}
// 
// 	public Host getDestination() {
// 		return destination;
// 	}
// 
// 	public void setDestination(Host destination) {
// 		this.destination = destination;
// 	}
// 
// 	public int getPriority() {
// 		return priority;
// 	}
// 
// 	public void setPriority(int priority) {
// 
// 		this.priority = priority;
// 	}
// 
// 	public String toString() {
// 		if (null != source && null != destination) {
// 			return source + "=>" + destination;
// 		} else if (null != source && null == destination) {
// 			return source + "=>";
// 		} else if (null == source && null != destination) {
// 			return "=>" + destination;
// 		} else {
// 			return "";
// 		}
// 
// 	}
// 
// 	public int compareTo(Rule o) {
// 		if (this.priority < o.priority)
// 			return -1;
// 		return 1;
// 	}
// 
// }


import monica.cluster.Parser;
import monica.cluster.router.parse.object.Operator;
import monica.cluster.router.parse.object.Rule;

package monica.cluster.router.parse;


/**
 * 
 * @author lucy@polarcoral.com
 *
 *         2017-08-29
 */
public class UnblockedParser implements Parser {
	private volatile boolean parseResult = false;

	public void doParse(Rule rule) {
		if (null == rule.getDestination() && rule.getSource().getOps().equals(Operator.EXCLUDE)) {

// Path: monica-cluster/src/main/java/monica/cluster/Parser.java
// public interface Parser {
// 	public void doParse(Rule rule);
// 
// 	public boolean isExpected();
// }
// 
// Path: monica-cluster/src/main/java/monica/cluster/router/parse/object/Operator.java
// public enum Operator {
// 	INCLUDE, EXCLUDE
// }
// 
// Path: monica-cluster/src/main/java/monica/cluster/router/parse/object/Rule.java
// public class Rule implements Comparable<Rule> {
// 	private Host source;
// 	private Host destination;
// 	private int priority;
// 
// 	public Host getSource() {
// 		return source;
// 	}
// 
// 	public void setSource(Host source) {
// 		this.source = source;
// 	}
// 
// 	public Host getDestination() {
// 		return destination;
// 	}
// 
// 	public void setDestination(Host destination) {
// 		this.destination = destination;
// 	}
// 
// 	public int getPriority() {
// 		return priority;
// 	}
// 
// 	public void setPriority(int priority) {
// 
// 		this.priority = priority;
// 	}
// 
// 	public String toString() {
// 		if (null != source && null != destination) {
// 			return source + "=>" + destination;
// 		} else if (null != source && null == destination) {
// 			return source + "=>";
// 		} else if (null == source && null != destination) {
// 			return "=>" + destination;
// 		} else {
// 			return "";
// 		}
// 
// 	}
// 
// 	public int compareTo(Rule o) {
// 		if (this.priority < o.priority)
// 			return -1;
// 		return 1;
// 	}
// 
// }


// Path: monica-cluster/src/main/java/monica/cluster/router/parse/UnblockedParser.java
import monica.cluster.Parser;
import monica.cluster.router.parse.object.Operator;
import monica.cluster.router.parse.object.Rule;

package monica.cluster.router.parse;


/**
 * 
 * @author lucy@polarcoral.com
 *
 *         2017-08-29
 */
public class UnblockedParser implements Parser {
	private volatile boolean parseResult = false;

	public void doParse(Rule rule) {
		if (null == rule.getDestination() && rule.getSource().getOps().equals(Operator.EXCLUDE)) {

			parseResult = true;
