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<String> 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<String> btmNameList = new ArrayList<String>();
|
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<String> 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;
|
}
|
|
}
|