?? findbusiness.java
字號:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: FindBusiness.java
package org.huihoo.openweb.uddiserver.inquiry;
import java.io.*;
import java.sql.*;
import java.util.Enumeration;
import java.util.Vector;
import org.huihoo.openweb.uddi.*;
public class FindBusiness
{
Connection con;
Find_Business businessparam;
public FindBusiness(Find_Business businessparam, Connection c)
{
this.businessparam = businessparam;
con = c;
}
public UddiObject getData()
throws SQLException, IOException, UDDIXmlException, ClassNotFoundException
{
Enumeration businessnames = businessparam.getBusinessName();
DiscoveryUrls discoveryurls = businessparam.getDiscoveryUrls();
IdentifierBag identifierbag = businessparam.getIdentifierBag();
CategoryBag categorybag = businessparam.getCategoryBag();
TModelBag tmodelbag = businessparam.getTModelBag();
if(businessnames == null && discoveryurls == null && identifierbag == null && tmodelbag == null && tmodelbag == null)
{
Result result = Result.getResult(10050, "E_unsupported (10050) Feature or API not supported. No search criteria was specified in the message");
return errorOccured(result);
}
int count = 0;
if(businessnames != null)
{
while(businessnames.hasMoreElements())
{
String name = ((UddiObject)businessnames.nextElement()).getValue();
if(name.length() > 46)
{
Result result = Result.getResult(10020, "partial name value passed exceeds the maximum name length of the name field as specified in the UDDI data structure reference.");
return errorOccured(result);
}
count++;
}
if(count > 5)
{
Result result = Result.getResult(10030, " The limit of 5 name arguments was exceeded ");
return errorOccured(result);
}
}
FindQualifiers qualifiers = businessparam.getQualifiers();
if(qualifiers != null)
{
Enumeration qualifier = qualifiers.getQualifier();
boolean value = CheckQualifiers.check(qualifier);
if(!value)
{
Result result = Result.getResult(10050, "The findQualifier value " + CheckQualifiers.qualifiervalue + " was invalid ");
return errorOccured(result);
}
}
String Names = "";
String bus_names = "";
Vector names = new Vector();
Enumeration enum = businessparam.getBusinessName();
if(enum != null)
while(enum.hasMoreElements())
{
Object object = enum.nextElement();
String query5 = "select businesskey from BusinessDetails where name like '" + ((UddiObject)object).getValue() + "%'";
Statement stmt5 = con.createStatement();
for(ResultSet rs5 = stmt5.executeQuery(query5); rs5.next();)
if(bus_names.length() > 0)
bus_names = bus_names + "," + "'" + rs5.getString("businesskey") + "'";
else
bus_names = "'" + rs5.getString("businesskey") + "'";
stmt5.close();
names.addElement(object);
if(Names.length() > 0)
Names = Names + "," + "'" + ((UddiObject)object).getValue() + "'";
else
Names = "'" + ((UddiObject)object).getValue() + "'";
}
String discURL = "";
Vector url = new Vector();
if(discoveryurls != null)
{
for(Enumeration urls = discoveryurls.getDiscoveryUrl(); urls.hasMoreElements();)
{
Object object = urls.nextElement();
url.addElement(object);
if(discURL.length() > 0)
discURL = discURL + "," + "'" + ((UddiObject)object).getValue() + "'";
else
discURL = "'" + ((UddiObject)object).getValue() + "'";
}
}
String bus_disc = "";
if(discURL.length() > 0)
{
String query4 = "select businesskey from DiscoveryURLs where discoveryURL in (" + discURL + ")";
Statement stmt4 = con.createStatement();
for(ResultSet rs4 = stmt4.executeQuery(query4); rs4.next();)
if(bus_disc.length() > 0)
bus_disc = bus_disc + "," + "'" + rs4.getString("businesskey") + "'";
else
bus_disc = "'" + rs4.getString("businesskey") + "'";
stmt4.close();
}
String buskey_identibag = "";
if(identifierbag != null)
{
for(Enumeration keyedreference = identifierbag.getKeyedReference(); keyedreference.hasMoreElements();)
{
KeyedReference kr = (KeyedReference)keyedreference.nextElement();
String keyname = kr.getKeyName();
String keyvalue = kr.getKeyValue();
String query = "select key from IdentifierBag where keyname='" + keyname + "' and keyvalue='" + keyvalue + "'";
Statement stmt = con.createStatement();
for(ResultSet rs = stmt.executeQuery(query); rs.next();)
if(buskey_identibag.length() > 0)
buskey_identibag = buskey_identibag + "," + "'" + rs.getString("key") + "'";
else
buskey_identibag = "'" + rs.getString("key") + "'";
}
}
String buskey_catbag = "";
if(categorybag != null)
{
for(Enumeration keyedref = categorybag.getKeyedReference(); keyedref.hasMoreElements();)
{
int check = 0;
KeyedReference kr = (KeyedReference)keyedref.nextElement();
String keyname = kr.getKeyName();
String keyvalue = kr.getKeyValue();
org.huihoo.openweb.uddi.TModelKey key = kr.getTModelKey();
String tmodelkey = key.getValue();
String query = "select key from CategoryBag where keyname='" + keyname + "' and keyvalue='" + keyvalue + "' and tmodelkey='" + tmodelkey + "'";
Statement stmt = con.createStatement();
for(ResultSet rs = stmt.executeQuery(query); rs.next();)
{
if(buskey_catbag.length() > 0)
buskey_catbag = buskey_catbag + "," + "'" + rs.getString("key") + "'";
else
buskey_catbag = "'" + rs.getString("key") + "'";
check++;
}
stmt.close();
if(check == 0)
{
buskey_catbag = "";
break;
}
}
}
String buskeys_modelbag = "";
if(tmodelbag != null)
{
Statement stmt1;
for(Enumeration enumer = tmodelbag.getTModelKey(); enumer.hasMoreElements(); stmt1.close())
{
String tmodelkey = ((UddiObject)enumer.nextElement()).getValue();
String query1 = "select * from InstanceDetails where tmodelkey='" + tmodelkey + "'";
stmt1 = con.createStatement();
Statement stmt2;
for(ResultSet rs1 = stmt1.executeQuery(query1); rs1.next(); stmt2.close())
{
String bindingkey = rs1.getString("bindingkey");
System.out.println(" CHECK " + bindingkey);
String query2 = " select servicekey from BindingTemplate where bindingkey='" + bindingkey + "'";
stmt2 = con.createStatement();
Statement stmt3;
for(ResultSet rs2 = stmt2.executeQuery(query2); rs2.next(); stmt3.close())
{
String servicekey = rs2.getString("servicekey");
String query3 = "select businesskey from BusinessService where servicekey = '" + servicekey + "'";
stmt3 = con.createStatement();
for(ResultSet rs3 = stmt3.executeQuery(query3); rs3.next();)
{
String businesskey = rs3.getString("businesskey");
if(buskeys_modelbag.length() > 0)
buskeys_modelbag = buskeys_modelbag + "," + "'" + businesskey + "'";
else
buskeys_modelbag = "'" + businesskey + "'";
}
}
}
}
}
String businesskeys = "";
if(bus_names.length() > 0)
businesskeys = businesskeys + bus_names;
if(bus_disc.length() > 0 && businesskeys.length() > 0)
businesskeys = businesskeys + "," + bus_disc;
else
businesskeys = businesskeys + bus_disc;
if(buskey_catbag.length() > 0 && businesskeys.length() > 0)
businesskeys = businesskeys + "," + buskey_catbag;
else
businesskeys = businesskeys + buskey_catbag;
if(buskey_identibag.length() > 0 && businesskeys.length() > 0)
businesskeys = businesskeys + "," + buskey_identibag;
else
businesskeys = businesskeys + buskey_identibag;
String maxrowsstr = businessparam.getMaxRows();
int maxrowsallowed = 0;
System.out.println(maxrowsstr);
if(maxrowsstr != null)
maxrowsallowed = Integer.parseInt(maxrowsstr);
String list = "<businessList generic=\"1.0\" xmlns=\"urn:uddi-org:api\" operator=\"www.huihoo.com\" ></businessList>";
ByteArrayInputStream bas = new ByteArrayInputStream(list.getBytes());
BusinessList businesslist = new BusinessList(bas);
BusinessInfos businessinfos = new BusinessInfos();
businesslist.setTruncated("false");
String str = "";
Statement stmt7 = con.createStatement();
String query = "";
String innerquery = "";
if(buskeys_modelbag.length() > 0 || businesskeys.length() > 0)
{
if(buskeys_modelbag.length() > 0 && businesskeys.length() > 0)
{
query = "SELECT * FROM BusinessDetails Where businesskey in (" + businesskeys + ") and businesskey in (" + buskeys_modelbag + ")";
innerquery = "select * from BusinessService where businesskey in (" + businesskeys + ") and businesskey in (" + buskeys_modelbag + ")";
}
if(buskeys_modelbag.length() > 0 && businesskeys.length() == 0)
{
query = "SELECT * FROM BusinessDetails Where businesskey in (" + buskeys_modelbag + ")";
innerquery = "select * from BusinessService where businesskey in (" + buskeys_modelbag + ")";
}
if(buskeys_modelbag.length() == 0 && businesskeys.length() > 0)
{
query = "SELECT * FROM BusinessDetails Where businesskey in (" + businesskeys + ")";
innerquery = "select * from BusinessService where businesskey in (" + businesskeys + ")";
}
ResultSet rs7 = stmt7.executeQuery(query);
int resultsetcount = 0;
Statement stmt8;
for(; rs7.next(); stmt8.close())
{
String businesskey = rs7.getString("businesskey");
BusinessInfo businessinfo = new BusinessInfo(businesskey);
String companyname = rs7.getString("name");
String businessdescription = rs7.getString("description");
UddiObject obj = new UddiObject("name");
obj.setValue(companyname);
businessinfo.addElement(obj);
UddiObject object = new UddiObject("description");
object.setValue(businessdescription);
businessinfo.addElement(object);
ServiceInfos serviceinfos = new ServiceInfos();
stmt8 = con.createStatement();
ServiceInfo serviceinfo;
for(ResultSet rs8 = stmt8.executeQuery(innerquery); rs8.next(); serviceinfos.addElement(serviceinfo))
{
String servicekey = rs8.getString("servicekey");
serviceinfo = new ServiceInfo(businesskey, servicekey);
String servicename = rs8.getString("servicename");
UddiObject objname = new UddiObject("name");
objname.setValue(servicename);
serviceinfo.addElement(objname);
}
businessinfo.addElement(serviceinfos);
businessinfos.addElement(businessinfo);
resultsetcount++;
if(maxrowsallowed == 0 || resultsetcount <= maxrowsallowed)
continue;
businesslist.setTruncated("true");
break;
}
stmt7.close();
}
businesslist.addElement(businessinfos);
return businesslist;
}
public UddiObject errorOccured(Result result)
throws SQLException, ClassNotFoundException
{
DispositionReport pr = new DispositionReport();
pr.setResult(result);
return pr;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -