📄 impelement.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 + -