⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 allprocessor.java.svn-base

📁 EasyJWeb是基于java技术
💻 SVN-BASE
字号:
package com.easyjf.generator;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.persistence.Embedded;import javax.persistence.Entity;import javax.persistence.Id;import org.apache.velocity.context.Context;import com.easyjf.beans.BeanUtils;import com.easyjf.container.annonation.FormPO;import com.easyjf.util.StringUtils;import com.easyjf.web.tools.generator.TemplateProcess;public class AllProcessor implements TemplateProcess {	private String beanClass;	private String packageName;	public String getPackageName() {		return packageName;	}	public void setPackageName(String packageName) {		this.packageName = packageName;	}	public String getBeanClass() {		return beanClass;	}	public void setBeanClass(String beanClass) {		this.beanClass = beanClass;	}	@SuppressWarnings( { "unchecked", "deprecation" })	public void process(Context context) throws Exception {		Class bean = Class.forName(getBeanClass());		if (bean.isAnnotationPresent(Embedded.class)) {			return;		}		if (bean != null && bean.isAnnotationPresent(Entity.class)) {			String domainName = bean.getSimpleName();					FormPO af =(FormPO)bean.getAnnotation(FormPO.class);						context.put("domainLabel", (af!=null&&af.label()!=null)?af.label():domainName);			context.put("domainName", domainName);			context.put("nowTime", new java.util.Date().toLocaleString());			String domain = domainName.substring(0, 1).toLowerCase()					+ domainName.substring(1);			context.put("domain", domain);			List<Map> fields = new ArrayList<Map>();			List<String> complexFields = new ArrayList<String>();			for (Field field : bean.getDeclaredFields()) {				if (field.getName().equals("status")) {					continue;				}				if (resovleGenerAnno(field)) {					continue;				}				if (isSimpleType(field.getType())) {					fields.add(parseField(field));				} else if (isComplexFields(field.getType())) {					complexFields.add(field.getName());				}				resovleIdAnno(context, fields, field);				resovleEmbed(fields, complexFields, field);			}			context.put("fields", fields);			context.put("complexFields", complexFields);			context.put("packageName", packageName);			String locath = packageName					.substring(packageName.lastIndexOf(".") + 1);			context.put("locath", locath);		}	}	@SuppressWarnings("unchecked")	private Map parseField(Field field) {		Map map = new HashMap();		map.put("name", field.getName());		map.put("lable", field.getName());		com.easyjf.container.annonation.Field af = field				.getAnnotation(com.easyjf.container.annonation.Field.class);		if (af != null) {			if (StringUtils.hasLength(af.name()))				map.put("lable", af.name());		}		return map;	}	@SuppressWarnings("unchecked")	private void resovleEmbed(List<Map> fields, List<String> complexFields,			Field field) {		if (field.isAnnotationPresent(Embedded.class)) {			for (Field f : field.getType().getDeclaredFields()) {				if (field.getName().equals("status")) {					continue;				}				if (resovleGenerAnno(field)) {					continue;				}				if (isSimpleType(f.getType())) {					fields.add(parseField(f));				}			}			complexFields.remove(complexFields.size() - 1);		}	}	private boolean resovleGenerAnno(Field field) {		if (field				.isAnnotationPresent(com.easyjf.container.annonation.Field.class)) {			com.easyjf.container.annonation.Field f = field					.getAnnotation(com.easyjf.container.annonation.Field.class);			boolean gen = f.gener();			return !gen;		}		return false;	}	@SuppressWarnings("unchecked")	private void resovleIdAnno(Context context, List<Map> fields, Field field) {		if (field.isAnnotationPresent(Id.class)) {			fields.remove(fields.size() - 1);			String fieldName = field.getName();			fieldName = fieldName.substring(0, 1).toUpperCase()					+ fieldName.substring(1);			context.put("id", fieldName);		}	}	@SuppressWarnings("unchecked")	private boolean isSimpleType(Class clazz) {		if (BeanUtils.isSimpleProperty(clazz)) {			return true;		} else if (Date.class.isAssignableFrom(clazz)) {			return true;		}		return false;	}	@SuppressWarnings("unchecked")	private boolean isComplexFields(Class clazz) {		if (Collection.class.isAssignableFrom(clazz)) {			return false;		}		if (Map.class.isAssignableFrom(clazz)) {			return false;		}		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -