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

📄 codegenutils.java

📁 基于eclipse的工具开发代码
💻 JAVA
字号:
package com.cownew.studio.modelDev.codeGen.hib;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.dom4j.DocumentException;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;

import com.cownew.studio.Activator;
import com.cownew.studio.modelDev.common.CommonUtils;
import com.cownew.studio.modelDev.common.EntityFieldModelBean;
import com.cownew.studio.modelDev.common.EntityModelBean;
import com.cownew.studio.modelDev.common.EntityModelFileHandler;
import com.cownew.studio.modelDev.common.enumdef.DataTypeEnum;
import com.cownew.studio.modelDev.common.enumdef.LinkTypeEnum;

public class CodeGenUtils
{
	/**
	 * 得到与实体对象bean相关的import语句
	 * @param bean
	 * @param project
	 * @return
	 */
	public static Set<String> getImports(EntityModelBean bean, IProject project)
	{
		// 使用Set可以保证import语句中不会有重复项
		Set<String> importSet = new HashSet<String>();
		importSet.add("java.util.*");
		importSet.add("java.sql.*");
		importSet.add("java.math.*");
		List<EntityFieldModelBean> fieldList = bean.getFieldList();
		for (int i = 0, n = fieldList.size(); i < n; i++)
		{
			EntityFieldModelBean field = fieldList.get(i);
			if (field.isLinkProperty() == false
					|| CommonUtils.isEmptyString(field.getLinkEntity()))
			{
				continue;
			}

			// 添加管理实体的import语句
			EntityModelBean linkBean = entityToXMLBean(field.getLinkEntity(),
					project);
			String linkPackage = linkBean.getPackageName();
			if (!CommonUtils.isEmptyString(linkPackage)
					&& !linkPackage.equals(bean.getPackageName()))
			{
				importSet.add(linkPackage + ".*");
			}

		}
		return importSet;
	}

	/**
	 * 将实体中定义的数据类型转化为Java中的属性类型
	 * @param field
	 * @param nameStrategy
	 * @param project
	 * @return
	 */
	public static String dataTypeToJavaString(EntityFieldModelBean field,
			INameStrategy nameStrategy, IProject project)
	{
		DataTypeEnum dataType = field.getDataype();
		if (!field.isLinkProperty())
		{
			if (dataType == DataTypeEnum.BIGDECIMAL)
				return "BigDecimal";
			if (dataType == DataTypeEnum.BLOB)
				return "Blob";
			if (dataType == DataTypeEnum.BOOLEAN)
				return "boolean";
			if (dataType == DataTypeEnum.CLOB)
				return "Clob";
			if (dataType == DataTypeEnum.DATE)
				return "java.sql.Date";
			if (dataType == DataTypeEnum.INTEGER)
				return "int";
			if (dataType == DataTypeEnum.STRING)
				return "String";
			throw new IllegalArgumentException();
		}

		LinkTypeEnum linkType = field.getLinkType();

		// ONETOMANY类型的关联字段
		if (linkType == LinkTypeEnum.ONETOMANY)
		{
			return "Set";
		}
		// ONETOONE和MANYTOONE类型的关联字段翻译成对应的类型
		if (linkType == LinkTypeEnum.ONETOONE
				|| linkType == LinkTypeEnum.MANYTOONE)
		{
			EntityModelBean linkBean = entityToXMLBean(field.getLinkEntity(),
					project);

			return nameStrategy.entityNameToOVName(linkBean.getName());
		}
		throw new IllegalArgumentException();
	}

	/**
	 * 将实体中定义的数据类型转化为数据库类型
	 * @param field
	 * @return
	 */
	public static String dataTypeToDBDef(EntityFieldModelBean field)
	{
		DataTypeEnum dataType = field.getDataype();
		if (!field.isLinkProperty())
		{
			if (dataType == DataTypeEnum.BIGDECIMAL)
				return "big_decimal";
			if (dataType == DataTypeEnum.BLOB)
				return "blob";
			if (dataType == DataTypeEnum.BOOLEAN)
				return "boolean";
			if (dataType == DataTypeEnum.CLOB)
				return "clob";
			if (dataType == DataTypeEnum.DATE)
				return "date";
			if (dataType == DataTypeEnum.INTEGER)
				return "int";
			if (dataType == DataTypeEnum.STRING)
				return "string";
			throw new IllegalArgumentException();
		}

		LinkTypeEnum linkType = field.getLinkType();
		if (linkType == LinkTypeEnum.MANYTOONE)
		{
			return null;
		}
		if (linkType == LinkTypeEnum.ONETOONE)
		{
			return "string";
		}
		throw new IllegalArgumentException();
	}

	private static EntityModelBean entityToXMLBean(String entity,
			IProject project)
	{
		IFile file = project.getFile(entity);
		if (file == null || file.exists() == false)
		{
			Activator.logErrorMsg("link entity:" + entity + " not exists!");
			return null;
		}
		EntityModelBean linkBean;
		try
		{
			linkBean = EntityModelFileHandler.xmlToBean(file);
		} catch (DocumentException e)
		{
			Activator.logException(e);
			return null;
		}
		return linkBean;
	}

	/**
	 * 得到实体modelBean中名称为fieldName的字段的字段对象
	 * @param modelBean
	 * @param fieldName
	 * @return
	 */
	public static EntityFieldModelBean getFieldModelByName(
			EntityModelBean modelBean, String fieldName)
	{
		List<EntityFieldModelBean> fieldList = modelBean.getFieldList();
		for (int i = 0, n = fieldList.size(); i < n; i++)
		{
			EntityFieldModelBean field = fieldList.get(i);
			if (field.getName().equals(fieldName))
			{
				return field;
			}
		}
		throw new IllegalArgumentException("field:" + fieldName + "not found!");
	}

}

⌨️ 快捷键说明

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