package com.vci.client.omd.inter.impl; import java.util.ArrayList; import java.util.Iterator; import org.jdesktop.swingx.JXTable; import com.vci.client.omd.attribpool.ui.APClient; import com.vci.client.omd.btm.resource.BtmTool; import com.vci.client.omd.btm.toOutside.BtmTableForOut; import com.vci.client.omd.btm.ui.BtmClient; import com.vci.corba.common.VCIError; import com.vci.corba.omd.atm.AttribItem; /** * 实现属性池提供的接口, 实现属性池的查看使用范围功能 * @author Administrator * */ public class InterAPForBTImpl implements InterAPForBt{ /** * 返回使用指定属性的业务类型名列表 */ @Override public ArrayList getUsedNameList(String abItemName){ String[] btNameArray = null; try { btNameArray = BtmClient.getService().getBTMNamesByAPName(abItemName); } catch (VCIError e) { e.printStackTrace(); } return BtmTool.getInstance().convertArrayToList(btNameArray); } /** * 修改属性, 对应的修改业务类型和链接类型中该属性字段 */ @Override public boolean alterAp(String apName) { String[] btmNames = null; ArrayList btmNameList = new ArrayList(); AttribItem abItem = null; try { abItem = APClient.getService().getAttribItemByName(apName); } catch (VCIError e1) { e1.printStackTrace(); } if(abItem == null || abItem.equals("")){ return true; } try { btmNames = BtmClient.getService().getBTMNamesByAPName(apName); } catch (VCIError e) { e.printStackTrace(); } if(btmNames == null || btmNames.length <= 0){ return true; } String abSql = BtmTool.getInstance().getAbSql(abItem); abSql = abSql.substring(0, abSql.lastIndexOf(",")); btmNameList = BtmTool.getInstance().convertArrayToList(btmNames); for(Iterator i = btmNameList.iterator(); i.hasNext();){ String btmName = i.next(); try { BtmClient.getService().modifyBTAttribute(btmName, apName); } catch (VCIError e) { // TODO Auto-generated catch block e.printStackTrace(); } // String sql = "alter table " + OmdTools.getBTMTableName(btmName) + " modify( " + abSql + " )"; // DDLToolClient.getService().executeUpdateOracle(sql); // DDLToolClient.getService().alterTableDDLOracle(sql + ";"); } return false; } /** * 判断在业务类型和连接类型中, 该属性是否已生成数据 * 当使用该属性的业务类型有数据, 即判定该属性有数据 */ @Override public boolean hasInstance(String apName) { String[] btmNames = null; try { btmNames = BtmClient.getService().getBTMNamesByAPName(apName); } catch (VCIError e) { e.printStackTrace(); } if(btmNames == null || btmNames.length == 0){ return false; } for(int i = 0; i < btmNames.length; i++){ String btmName = btmNames[i]; boolean flag; try { flag = BtmClient.getService().hasData(btmName); if(flag){ return flag; } } catch (VCIError e) { // TODO Auto-generated catch block e.printStackTrace(); } //boolean flag = DDLToolClient.getService().hasInstanceOralce(OmdTools.getBTMTableName(btmName)); } return false; } /** * 获取业务类型Table */ public JXTable getBtTable(String filter) { //add by caill 为BtmTableForOut方法增加一个textValue参数,用来传递查询框中的内容 BtmTableForOut btmTableOut = new BtmTableForOut(null, filter); //BtmTableForOut btmTableOut = new BtmTableForOut(null); return btmTableOut; } }