package com.vci.server.omd.enumtype.delegate;
|
|
import com.vci.server.base.exception.ExceptionLocalHandler;
|
import com.vci.server.cache.OMCacheProvider;
|
import com.vci.server.omd.enumtype.cache.EnumServerCacheUtil;
|
import com.vci.server.omd.enumtype.service.EnumService;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import com.vci.common.exception.VciExceptionTool;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.omd.etm.EnumItem;
|
|
public class EnumTypeServerDelegate implements IEnumServerDelegate{
|
|
private static EnumTypeServerDelegate instance;
|
|
public static EnumTypeServerDelegate getInstance() {
|
if (instance == null) {
|
instance = new EnumTypeServerDelegate();
|
}
|
|
return instance;
|
}
|
|
protected VCIError getLocalVciError(String key, Throwable e) {
|
VCIError error = null;
|
if (e == null) {
|
error = new VCIError(key, new String[0]);
|
} else {
|
error = new VCIError(key, new String[]{VciExceptionTool.getExceptionStr(e), VciExceptionTool.getExceptionDetail(e)});
|
}
|
VCIError rsError = ExceptionLocalHandler.getInstance().getLocalString(error, "PLMENUM");
|
return rsError;
|
}
|
|
/**
|
* 查询枚举
|
*/
|
public EnumItem[] getEmItems(String filter, int start, int rows)
|
throws VCIError {
|
return OMCacheProvider.getEnumTypeByFilter(filter);
|
//return EnumServerCacheUtil.getInstance().getEmItems(filter, start, rows);
|
}
|
|
/**
|
* 检查枚举名是否存在
|
*/
|
@Override
|
public boolean checkRowIsExists(String name) throws VCIError {
|
return OMCacheProvider.existEnumType(name);
|
//return EnumServerCacheUtil.getInstance().checkRowIsExists(name);
|
}
|
|
/**
|
* 根据枚举类型查询枚举
|
*/
|
public EnumItem[] getEmItemsByType(String type) throws VCIError {
|
EnumItem[] eis = OMCacheProvider.getEnumTypeByFilter("");
|
|
EnumService es = new EnumService();
|
List<EnumItem> emItemList = new ArrayList<EnumItem>();
|
try{
|
for (EnumItem em : eis) {
|
if (type.equals(em.type)) {
|
EnumItem eiRes = es.FilterSecretGrade(em);
|
emItemList.add(eiRes);
|
}
|
}
|
}catch(Throwable e){
|
e.printStackTrace();
|
throw getLocalVciError("P0010PLMENUM-00006", e);
|
}
|
return emItemList.toArray(new EnumItem[emItemList.size()]);
|
|
//return EnumServerCacheUtil.getInstance().getEmItemsByType(type);
|
}
|
|
|
/**
|
* 根据枚举名字查询枚举
|
*/
|
public EnumItem getEmItemByName(String name) throws VCIError {
|
return OMCacheProvider.getEnumType(name);
|
}
|
|
@Override
|
public boolean addEmItem(EnumItem emItem) throws VCIError {
|
try{
|
boolean success = EnumService.getInstance().addEmItem(emItem);
|
if (success) {
|
EnumServerCacheUtil.setEnumType(emItem);
|
}
|
|
return success;
|
}catch(Throwable e){
|
e.printStackTrace();
|
throw getLocalVciError("P0010PLMENUM-00001", e);
|
}
|
}
|
|
@Override
|
public boolean deleteEmItem(EnumItem em) throws VCIError {
|
try{
|
boolean success = EnumService.getInstance().deleteEmItem(em);
|
if (success) {
|
EnumServerCacheUtil.delEnumType(em.name);
|
}
|
return success;
|
}catch(Throwable e){
|
e.printStackTrace();
|
throw getLocalVciError("P0010PLMENUM-00003", e);
|
}
|
}
|
|
@Override
|
public boolean deleteEmItems(EnumItem[] emItems) throws VCIError {
|
try{
|
boolean success = EnumService.getInstance().deleteEmItems(emItems);
|
if (success) {
|
for (int i = 0; i < emItems.length; i++)
|
EnumServerCacheUtil.delEnumType(emItems[i].name);
|
}
|
return success;
|
}catch(Throwable e){
|
e.printStackTrace();
|
throw getLocalVciError("P0010PLMENUM-00003", e);
|
}
|
}
|
|
@Override
|
public boolean modifyEmItem(EnumItem emItem) throws VCIError {
|
try{
|
boolean success = EnumService.getInstance().modifyEmItem(emItem);
|
if (success) {
|
EnumServerCacheUtil.delEnumType(emItem.name);
|
}
|
return success;
|
}catch(Throwable e){
|
e.printStackTrace();
|
throw getLocalVciError("P0010PLMENUM-00002", e);
|
}
|
}
|
|
public boolean xml2DB(String userName) throws VCIError {
|
return EnumService.getInstance().xml2DB(userName);
|
}
|
|
|
}
|