// Path: src/main/java/io/craft/armor/spi/ArmorFilter.java
// public interface ArmorFilter {
// 	
// 	/**
// 	 * Filter the invocation through the filter.
// 	 * 
// 	 * @param  invocation current invocation
// 	 * @throws Throwable exception when any invocation error occurs.
// 	 */
// 	void doFilter(ArmorInvocation invocation) throws Throwable;
// 	
// }


import io.craft.armor.spi.ArmorFilter;
package io.craft.armor;


/**
 * @author mindwind
 * @version 1.0, Dec 29, 2014
 */
abstract public class AbstractArmorFilter implements ArmorFilter {

	
	protected ArmorContext context = Armors.defaultContext();
	
	
	public AbstractArmorFilter(ArmorContext context) {
		this.context = context;
	}

	
// Path: src/main/java/io/craft/armor/spi/ArmorFilter.java
// public interface ArmorFilter {
// 	
// 	/**
// 	 * Filter the invocation through the filter.
// 	 * 
// 	 * @param  invocation current invocation
// 	 * @throws Throwable exception when any invocation error occurs.
// 	 */
// 	void doFilter(ArmorInvocation invocation) throws Throwable;
// 	
// }


// Path: src/main/java/io/craft/armor/AbstractArmorFilter.java
import io.craft.armor.spi.ArmorFilter;

package io.craft.armor;


/**
 * @author mindwind
 * @version 1.0, Dec 29, 2014
 */
abstract public class AbstractArmorFilter implements ArmorFilter {

	
	protected ArmorContext context = Armors.defaultContext();
	
	
	public AbstractArmorFilter(ArmorContext context) {
		this.context = context;
	}

	
	protected boolean isOff(Class<? extends ArmorFilter> filterType) {