⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findbusiness.java

📁 OpenWeb-UDDI是UDDI V2标准的实现
💻 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 + -