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

📄 impelement.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.core.expimp.imp.ejb;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.ddlutils.dynabean.SqlDynaBean;

import cn.myapps.util.StringUtil;

public abstract class ImpElement {
	public final static String IMPOBJECT_ID = "ID";

	public final static String IMPOBJECT_NAME = "NAME";

	public final static String FOREIGNKEY_COLUMN_APPLICATION = "APPLICATIONID";

	public final static String FOREIGNKEY_COLUMN_MODULE = "MODULE";

	protected String applicationid;

	protected String moduleid;

	public ImpElement(String appId, String modId) {
		setApplicationid(appId);
		setModuleid(modId);
	}

	public String getApplicationid() {
		return applicationid;
	}

	public void setApplicationid(String applicationid) {
		this.applicationid = applicationid;
	}

	public String getModuleid() {
		return moduleid;
	}

	public void setModuleid(String moduleid) {
		this.moduleid = moduleid;
	}

	protected Collection getBeansOfTable(Collection dynaBeans, String tableName) {
		Collection rtn = new ArrayList();

		for (Iterator iter = dynaBeans.iterator(); iter.hasNext();) {
			DynaBean bean = (DynaBean) iter.next();
			String currTableName = bean.getDynaClass().getName();
			if (currTableName.equalsIgnoreCase(tableName)) {
				rtn.add(bean);
			}
		}
		return rtn;
	}

	protected String[] getIdsByForeignKeyValue(Collection dynaBeans,
			String columnName, String id) {
		Collection rtn = new ArrayList();

		for (Iterator iter = dynaBeans.iterator(); iter.hasNext();) {
			DynaBean bean = (DynaBean) iter.next();
			DynaProperty property = bean.getDynaClass().getDynaProperty(
					columnName);
			if (property != null) {
				String fkid = (String) bean.get(columnName);
				if (id.equals(fkid)) {
					rtn.add(bean.get(IMPOBJECT_ID));
				}
			}
		}

		return (String[]) rtn.toArray(new String[rtn.size()]);
	}

	public Map getDataList(Collection dynaBeans) throws Exception {
		Map rtn = new HashMap();

		Collection beans = getBeansOfTable(dynaBeans, getTableName());
		Map values = new HashMap();

		for (Iterator iter = beans.iterator(); iter.hasNext();) {

			DynaBean bean = (DynaBean) iter.next();
			
			String id = (String) bean.get(IMPOBJECT_ID);

			String name = (String) bean.get(IMPOBJECT_NAME);
			

			values.put(id, name);
		}

		rtn.put(getDisplayName(), values);
		return rtn;
	}

	public Map getImportDatas(Collection dynaBeans, String[] ids)
			throws Exception {
		Map rtn = new HashMap();

		Collection beans = getBeansOfTable(dynaBeans, getTableName());

		for (Iterator iter = beans.iterator(); iter.hasNext();) {
			DynaBean bean = (DynaBean) iter.next();
			String id = (String) bean.get(IMPOBJECT_ID);
			for (int i = 0; i < ids.length; i++) {
				if (id.equals(ids[i])) {
					setForeignKeyValue(bean);
					rtn.put(id, bean);
				}
			}
		}

		return rtn;
	}

	public abstract void setForeignKeyValue(DynaBean bean); // 设置外键值

	public void resetPrimaryKey(DynaBean bean) {
		String id = (String) bean.get(IMPOBJECT_ID);
		bean.set(IMPOBJECT_ID, id + applicationid);
	}

	public void resetForeignKey(DynaBean bean, String columnName) {
		String fkid = (String) bean.get(columnName);
		if (fkid != null && fkid.trim().length() > 0) {
			bean.set(columnName, fkid + applicationid);
		}
	}

	public String getPropertyName(DynaProperty[] properties, String name) {
		for (int i = 0; i < properties.length; i++) {
			if (properties[i].getName().equalsIgnoreCase(name)) {
				return properties[i].getName();
			}

		}
		return "";
	}

	public abstract String getTableName();

	public abstract String getDisplayName();

	/**
	 * 获取错误信息
	 * 
	 * @param bean
	 * @return
	 * @throws Exception
	 */
	public String getErrorMessage(DynaBean bean) throws Exception {
		String rtn = " ";
		String value = (String) bean.get(IMPOBJECT_NAME);
		rtn += getDisplayName() + "->" + value + " is duplicate,";
		rtn += "please delete it before import";

		return rtn;
	}
}

⌨️ 快捷键说明

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