package com.vci.server.framework.delegate; import java.util.List; import org.apache.commons.lang3.StringUtils; import com.vci.common.utility.ObjectUtility; import com.vci.corba.common.VCIError; import com.vci.corba.framework.data.AppConfigCategoryInfo; import com.vci.corba.common.data.UserEntityInfo; import com.vci.server.base.delegate.BaseDelegate; import com.vci.server.framework.appConfig.AppConfigCategory; import com.vci.server.framework.appConfig.AppConfigCategoryService; import com.vci.server.framework.appConfig.AppConfigDetail; import com.vci.server.framework.appConfig.AppConfigDetailService; /** * AppConfigCategory Delegate Server * */ public class AppConfigCategoryDelegate extends BaseDelegate { AppConfigCategoryService service = null; public AppConfigCategoryDelegate(UserEntityInfo userEntityInfo) { super(userEntityInfo); service = new AppConfigCategoryService(this.getUserEntity()); } /** * 添加、保存 AppConfigCategory 对象 * @param info AppConfigCategoryInfo 对象 */ public String saveAppConfigCategory(AppConfigCategoryInfo info) throws VCIError{ if (StringUtils.isBlank(info.id)) { String id = ObjectUtility.getNewObjectID36(); info.id = id; } try{ AppConfigCategory cInfo = service.getAppConfigCategoryByName(info.name); if (cInfo != null && !cInfo.getId().equals("")) { throw new VCIError("107001", new String[]{}); } service.saveAppConfigCategory(this.convertAppConfigCategoryInfoToAppConfigCategory(info)); } catch (VCIError ex) { throw ex; } catch(Exception ex){ //TODO 在此处设置正确的错误编码 throw new VCIError("107002", new String[]{}); } return info.id; } /** * 修改、更新 AppConfigCategory 对象 * @param info AppConfigCategoryInfo 对象 */ public boolean updateAppConfigCategory(AppConfigCategoryInfo info) throws VCIError{ boolean res = false; try{ AppConfigCategory cInfo = service.getAppConfigCategoryByName(info.name); if (cInfo != null && !cInfo.getId().equals(info.id)) { throw new VCIError("107001", new String[]{}); } res = service.updateAppConfigCategory(this.convertAppConfigCategoryInfoToAppConfigCategory(info)); } catch (VCIError ex) { throw ex; } catch (Exception ex){ //TODO 在此处设置正确的错误编码 throw new VCIError("107003", new String[]{}); } return res; } /** * 根据 ID 删除 AppConfigCategory 对象(批量) * @param ids AppConfigCategory 对象的 ID 列表 */ public boolean deleteAppConfigCategory(String[] ids) throws VCIError{ boolean res = false; try{ AppConfigDetailService aService = new AppConfigDetailService(this.getUserEntity()); boolean hasDetail = aService.hasAppConfigDetail(ids); if (hasDetail) { throw new VCIError("107007", new String[]{}); } res = service.deleteAppConfigCategory(ids); } catch (VCIError ex) { throw ex; } catch (Exception ex){ //TODO 在此处设置正确的错误编码 throw new VCIError("107004", new String[]{}); } return res; } /** * 返回全部的 AppConfigCategory 对象 */ public AppConfigCategoryInfo[] getAppConfigCategorys() throws VCIError{ AppConfigCategoryInfo[] infos = new AppConfigCategoryInfo[0]; try{ List list = service.getAppConfigCategorys(); AppConfigCategory[] objects = list.toArray(new AppConfigCategory[]{}); infos = this.convertAppConfigCategorysToAppConfigCategoryInfos(objects); }catch(Exception ex){ //TODO 在此处设置正确的错误编码 throw new VCIError("107005", new String[]{}); } return infos; } /** * 根据 ID 返回 AppConfigCategory 对象 * @param id AppConfigCategory */ public AppConfigCategoryInfo getAppConfigCategoryById(String id) throws VCIError{ AppConfigCategoryInfo info = new AppConfigCategoryInfo(); try{ AppConfigCategory object = service.getAppConfigCategoryById(id); info = this.convertAppConfigCategoryToAppConfigCategoryInfo(object); }catch(Exception ex){ //TODO 在此处设置正确的错误编码 throw new VCIError("107006", new String[]{}); } return info; } /************************* CORBA & HIBERNATE CONVERT **************************/ /** * 对象转换(批量),从 Hibernate 对象转换到 Corba 对象 * @param objects */ public AppConfigCategoryInfo[] convertAppConfigCategorysToAppConfigCategoryInfos(AppConfigCategory[] objects){ AppConfigCategoryInfo[] infos = new AppConfigCategoryInfo[objects.length]; int i = 0; for(AppConfigCategory obj : objects){ infos[i++] = this.convertAppConfigCategoryToAppConfigCategoryInfo(obj); } return infos; } /** * 对象转换,从 Hibernate 对象转换到 Corba 对象 * @param object * @return */ public AppConfigCategoryInfo convertAppConfigCategoryToAppConfigCategoryInfo(AppConfigCategory object){ AppConfigCategoryInfo info = new AppConfigCategoryInfo(); info.id = object.getId() == null ? "" : object.getId(); info.name = object.getName() == null ? "" : object.getName(); info.desc = object.getDesc() == null ? "" : object.getDesc(); return info; } /** * 对象转换(批量),从 Corba 对象转换到 Hibernate 对象 * @param infos * @return */ public AppConfigCategory[] convertAppConfigCategoryInfosToAppConfigCategorys(AppConfigCategoryInfo[] infos){ AppConfigCategory[] objects = new AppConfigCategory[infos.length]; int i = 0; for(AppConfigCategoryInfo info : infos){ objects[i++] = this.convertAppConfigCategoryInfoToAppConfigCategory(info); } return objects; } /** * 对象转换,从 Corba 对象转换到 Hibernate 对象 * @param info * @return */ public AppConfigCategory convertAppConfigCategoryInfoToAppConfigCategory(AppConfigCategoryInfo info){ AppConfigCategory object = new AppConfigCategory(); object.setId(info.id); object.setName(info.name); object.setDesc(info.desc); return object; } }