package li.ioc; import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import li.model.Bean; import li.util.Files; import li.util.Reflect; import li.util.Verify; /** * @author : 明伟 * @date : 2013年10月24日 下午5:39:55 */ public class RegexIocLoader implements IocLoader { private static String typeRegex = Files.config().getProperty("bean.typeRegex", "~!@#none"); private static String fieldRegex = Files.config().getProperty("bean.fieldRegex", "~!@#none"); public List<Bean> getBeans() { List<String> fileList = AnnotationIocLoader.getClasseFiles(); List<li.model.Bean> beans = new ArrayList<li.model.Bean>(); for (String classFileName : fileList) { String typeName = AnnotationIocLoader.getClassName(classFileName); if (Verify.regex(typeName, typeRegex)) { li.model.Bean iocBean = new li.model.Bean();// 一个新的Bean iocBean.type = Reflect.getType(typeName); List<Field> fields = Reflect.getFields(iocBean.type); for (Field field : fields) { if (Verify.regex(field.getName(), fieldRegex)) { li.model.Field attribute = new li.model.Field();// 一个新的Field attribute.name = field.getName(); attribute.type = field.getType(); iocBean.fields.add(attribute); } } beans.add(iocBean); } } return beans; } }