// Path: tiger/src/main/java/org/eddy/tiger/util/Reflects.java
// public class Reflects {
// 
// 	/**
// 	 * 获取当前class及父class的属性列表
// 	 * 
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午2:31:34
// 	 * @author Eddy
// 	 */
// 	public static Set<Field> getFields(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Field> result = new HashSet<>(Arrays.asList(glass.getDeclaredFields()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredFields()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 
// 	/**
// 	 * 获取当前class及父class的构造器列表
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午2:57:50
// 	 * @author Eddy
// 	 */
// 	public static Set<Constructor<?>> getConstructors(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Constructor<?>> result = new HashSet<>(Arrays.asList(glass.getDeclaredConstructors()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredConstructors()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 	
// 	/**
// 	 * 获取当前class及父class的方法列表
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午3:02:00
// 	 * @author Eddy
// 	 */
// 	public static Set<Method> getMethods(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Method> result = new HashSet<>(Arrays.asList(glass.getDeclaredMethods()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredMethods()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 
// }


import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.inject.spi.AnnotatedConstructor;
import javax.enterprise.inject.spi.AnnotatedField;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.inject.Inject;
import javax.inject.Named;
import org.eddy.tiger.util.Reflects;
	 * @creatTime 下午8:07:16
	 * @author Eddy
	 */
	@SuppressWarnings("unused")
	@Deprecated
	private boolean named(Annotation[][] annos) {
		for (Annotation[] ann : annos) {
			if (named(ann)) return true;
		}
		return false;
	}
	
	/**
	 * 构造函数
	 * @creatTime 下午3:44:05
	 * @author Eddy
	 */
	public AnnotatedTypeImpl(Class<X> glass) {
		this.beanClass = glass;
		initFields();
		initConstructor();
		initMethods();
	}

	/**
	 * 
	 * @creatTime 下午2:05:20
	 * @author Eddy
	 */
	private void initMethods() {
// Path: tiger/src/main/java/org/eddy/tiger/util/Reflects.java
// public class Reflects {
// 
// 	/**
// 	 * 获取当前class及父class的属性列表
// 	 * 
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午2:31:34
// 	 * @author Eddy
// 	 */
// 	public static Set<Field> getFields(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Field> result = new HashSet<>(Arrays.asList(glass.getDeclaredFields()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredFields()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 
// 	/**
// 	 * 获取当前class及父class的构造器列表
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午2:57:50
// 	 * @author Eddy
// 	 */
// 	public static Set<Constructor<?>> getConstructors(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Constructor<?>> result = new HashSet<>(Arrays.asList(glass.getDeclaredConstructors()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredConstructors()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 	
// 	/**
// 	 * 获取当前class及父class的方法列表
// 	 * @param glass
// 	 * @return
// 	 * @creatTime 下午3:02:00
// 	 * @author Eddy
// 	 */
// 	public static Set<Method> getMethods(Class<?> glass) {
// 		if (null == glass)
// 			throw new IllegalArgumentException("glass 为空!");
// 		Set<Method> result = new HashSet<>(Arrays.asList(glass.getDeclaredMethods()));
// 		Class<?> currentClass = glass.getSuperclass();
// 		while (currentClass != null && !currentClass.equals(Object.class)) {
// 			result.addAll(Arrays.asList(currentClass.getDeclaredMethods()));
// 			currentClass = currentClass.getSuperclass();
// 		}
// 		return result;
// 	}
// 
// }


// Path: tiger/src/main/java/org/eddy/tiger/annotated/impl/AnnotatedTypeImpl.java
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.enterprise.inject.spi.AnnotatedConstructor;
import javax.enterprise.inject.spi.AnnotatedField;
import javax.enterprise.inject.spi.AnnotatedMethod;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.inject.Inject;
import javax.inject.Named;
import org.eddy.tiger.util.Reflects;

	 * @creatTime 下午8:07:16
	 * @author Eddy
	 */
	@SuppressWarnings("unused")
	@Deprecated
	private boolean named(Annotation[][] annos) {
		for (Annotation[] ann : annos) {
			if (named(ann)) return true;
		}
		return false;
	}
	
	/**
	 * 构造函数
	 * @creatTime 下午3:44:05
	 * @author Eddy
	 */
	public AnnotatedTypeImpl(Class<X> glass) {
		this.beanClass = glass;
		initFields();
		initConstructor();
		initMethods();
	}

	/**
	 * 
	 * @creatTime 下午2:05:20
	 * @author Eddy
	 */
	private void initMethods() {
		Set<Method> set = Reflects.getMethods(this.beanClass);