blob: e97298a4a35084891b530f166a4c26badf8a037d [file] [log] [blame]
/*
* Copyright 2003-2004 The Apache Software Foundation.
// (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
#include <string>
#include <iostream>
#include <stdlib.h>
#include <axis/AxisException.hpp>
using namespace std;
#include "Inquire.hpp"
#define ARRAYSIZE 1
char endpoint[256];
int
main(int argc, char *argv[])
{
if( argc < 2 )
{
printf( "Usage: %s [endpoint] ", argv[0]);
exit(0);
}
sprintf(endpoint, argv[1]);
char* cpname = "2.0";
int outputSize=0;
Inquire *ws = new Inquire(endpoint);
//ws->setProxy("localhost", 9090);
bool bSuccess = false;
int iRetryIterationCount = 3;
do
{
try
{
char buffer[100];
// Storing business Key to Buffer
sprintf(buffer, "aea80cae-6cde-4eac-9feb-19ac9719ebb9");
/* Case1 :
In this we pass one business key and get back one business Entity and then displays the details*/
businessKey_Array arrBusinessKeys;
businessKey * arrayBusiness = new businessKey[ARRAYSIZE];
int i;
for (i = 0; i < ARRAYSIZE; i++)
{
arrayBusiness[i] = new char[100];
strcpy(arrayBusiness[i],buffer);
}
arrBusinessKeys.set(arrayBusiness,ARRAYSIZE);
cout << "invoking get_businessDetail ...\n";
businessEntity_Array* businessEntities = ws->get_businessDetail(&arrBusinessKeys, cpname);
outputSize = 0;
businessEntity ** arrayOutB = businessEntities->get(outputSize);
cout << "businessEntity_Array size = " << outputSize << endl;
for( i = 0; i < outputSize; i++ )
{
cout << "Business Entity " << i + 1 << endl;
cout << "\t Business Key Ref = " << arrayOutB[i]->businessKey_Ref<<endl;
//printf("\t Operator = %s\n", arrayOutB[i]->_operator);
cout << "\t Authorized Name = " << arrayOutB[i]->authorizedName << endl;
cout << "\t Names... \n" ;
int outputSizeName = 0;
//Display name of the business Entity
name** arrayName = arrayOutB[i]->name_Ref->get(outputSizeName);
for( int j = 0; j < outputSizeName; j++)
{
cout << "\t\t Name " << j + 1 << " = " << arrayName[j]->name_value <<endl;
}
//Display Description
int outputSizeDesc=0;
description ** arrayDesc = arrayOutB[i]->description_Ref->get(outputSizeDesc);
cout << "\t Description ... " << endl;
for( int j = 0; j < outputSizeDesc; j++)
{
cout << "\t\t Description " << j+1 << " = " << arrayDesc[j]->description_value<< endl;
}
//Display Contact Details
int outputSizeContact=0;
contact **arrayContact=arrayOutB[i]->contacts_Ref->contact_Ref->get(outputSizeContact);
cout << "\t Contact Information ... " << endl;
for( int j = 0; j < outputSizeContact; j++)
{
cout << "\t\tContact information " << j+1 << endl;
cout << "\t\t\t Person Name " << j+1 << " = " << arrayContact[j]->personName << endl;
cout << "\t\t\t Use Type " << j+1 << " = " <<arrayContact[j]->useType << endl;
int descSize = 0;
description ** arrayCDesc= arrayContact[j]->description_Ref->get(descSize);
for(int k=0;k<descSize;k++){
cout << "\t\t\t Description = " << arrayCDesc[k]->description_value << endl;
}
int phoneSize=0;
phone ** phoneArray = arrayContact[j]->phone_Ref->get(phoneSize);
for(int k=0;k<phoneSize;k++){
cout << "\t\t\t Phone useType = " <<phoneArray[k]->useType << endl;
cout << "\t\t\t Phone Value = " << phoneArray[k]->phone_value<< endl;
}
int emailSize =0 ;
email ** emailArray = arrayContact[j]->email_Ref->get(emailSize);
for(int k=0;k<emailSize;k++){
cout << "\t\t\t email useType = " << emailArray[k]->useType << endl;
cout << "\t\t\t email Value = " <<emailArray[k]->email_value << endl;
}
int addressSize = 0;
address ** addressArray = arrayContact[j]->address_Ref->get(addressSize);
for(int k=0;k<addressSize;k++){
cout << "\t\t\t Address useType = " << addressArray[k]->useType << endl;
cout << "\t\t\t Address Value = " << addressArray[k]->sortCode << endl;
int addressLineSize = 0;
addressLine ** addLineArray = addressArray[k]->addressLine_Ref->get(addressLineSize);
for(int l=0;l<addressLineSize;l++){
cout << "\t\t\t AddressLine keyName = " << addLineArray[l]->keyName << endl;
cout << "\t\t\t AddressLine keyValue = " << addLineArray[l]->keyValue << endl;
cout << "\t\t\t AddressLine keyValue = " << addLineArray[l]->addressLine_value << endl;
}
}
}
if( arrayOutB[i]->businessServices_Ref )
{
cout << "\t Business Services...\n" ;
int outputSizeBS = 0;
businessService ** arrayOutBS = arrayOutB[i]->businessServices_Ref->businessService_Ref->get(outputSizeBS);
for( int j = 0; j < outputSizeBS; j++ )
{
cout << "\t\t Business Service " << j + 1 << endl;
cout << "\t\t\t service key referance = " << arrayOutBS[j]->serviceKey_Ref << endl;
cout << "\t\t\t business key referance = " << arrayOutBS[j]->serviceKey_Ref << endl;
if( arrayOutBS[j]->bindingTemplates_Ref )
{
cout << "\t\t\t Binding Templates...\n" ;
int outputSizeBT=0;
bindingTemplate ** arrayOutBT = arrayOutBS[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
for( int k = 0; k < outputSizeBT; k++ )
{
cout << "\t\t\t\t Access Point " << k + 1 << endl;
if( arrayOutBT[k]->accessPoint_Ref )
{
cout << "\t\t\t\t\t Point = " << arrayOutBT[k]->accessPoint_Ref->accessPoint_value << endl;
cout << "\t\t\t\t\t URL Type = " << arrayOutBT[k]->accessPoint_Ref->URLType_Ref << endl;
}
}
}
}
}
if(arrayOutB[i]->categoryBag_Ref){
int KRArraySize = 0;
keyedReference ** KRArray = arrayOutB[i]->categoryBag_Ref->keyedReference_Ref->get(KRArraySize);
cout << "\t\t\t Category Bag Array Size .. " << KRArraySize << endl;
for(int k=0;k<KRArraySize;k++){
cout << "\t\t\t Category Bag "<< k+1 << endl;
cout << "\t\t\t\ttModelKey_Ref = " << KRArray[k]->tModelKey_Ref << endl;
cout << "\t\t\t\ttKeyName = " <<KRArray[k]->keyName << endl;
cout << "\t\t\t\ttKeyValue = " << KRArray[k]->keyValue << endl;
}
}
//printf("overviewURL = %s\n", result.m_Array[i].overviewDoc_Ref->overviewURL);
}
/* Case2:
In this we pass 2 businessKeys and get back two business Entities */
arrayBusiness = new businessKey[2];
for (i = 0; i < 2; i++)
{
arrayBusiness[i] = new char[100];
}
strcpy(arrayBusiness[0],buffer);
strcpy(arrayBusiness[1],"05e39405-6216-46bd-8f4c-dad67cda4c72");
arrBusinessKeys.set(arrayBusiness,2);
cout << "\n\ninvoking get_businessDetail ...\n";
//printf("businessEntity_Array size = %d\n", ws->get_businessDetail(arrBusinessKeys, cpname).m_Size);
//Inquire *ws1 = new Inquire(endpoint);
businessEntities = ws->get_businessDetail(&arrBusinessKeys, cpname);
outputSize = 0;
arrayOutB = businessEntities->get(outputSize);
//businessEntity_Array get_businessDetail(businessKey_Array Value0,xsd__string Value1);
cout << "businessEntity_Array size = " << outputSize << endl;
for( i = 0; i < outputSize; i++ )
{
cout << "Business Entity " << i + 1 <<endl;
cout << "\t Business Key Ref = " << arrayOutB[i]->businessKey_Ref << endl;
//cout << "\t Operator = " << arrayOutB[i]->_operator << endl;
cout << "\t Authorized Name = " << arrayOutB[i]->authorizedName << endl;
cout << "\t Names... \n";
int outputSizeBE = 0;
name** arrayBE = arrayOutB[i]->name_Ref->get(outputSizeBE);
for( int j = 0; j < outputSizeBE; j++)
{
cout << "\t\t Name " << j + 1 << " = " << arrayBE[j]->name_value << endl;
}
if( arrayOutB[i]->businessServices_Ref )
{
cout << "\t Business Services...\n" ;
int outputSizeBS = 0;
businessService ** arrayOutBS = arrayOutB[i]->businessServices_Ref->businessService_Ref->get(outputSizeBS);
for( int j = 0; j < outputSizeBS; j++ )
{
cout << "\t\t Business Service " << j + 1 << endl;
cout << "\t\t\t service key referance = " << arrayOutBS[j]->serviceKey_Ref << endl;
cout << "\t\t\t business key referance = " << arrayOutBS[j]->serviceKey_Ref << endl;
if( arrayOutBS[j]->bindingTemplates_Ref )
{
cout << "\t\t\t Binding Templates...\n" ;
int outputSizeBT=0;
bindingTemplate ** arrayOutBT = arrayOutBS[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
for( int k = 0; k < outputSizeBT; k++ )
{
cout << "\t\t\t\t Access Point " << k + 1;
if( arrayOutBT[k]->accessPoint_Ref )
{
cout << "\t\t\t\t\t Point = " << arrayOutBT[k]->accessPoint_Ref->accessPoint_value << endl;
cout << "\t\t\t\t\t URL Type = " << arrayOutBT[k]->accessPoint_Ref->URLType_Ref << endl;
}
}
}
}
}
//printf("overviewURL = %s\n", result.m_Array[i].overviewDoc_Ref->overviewURL);
}
/* Case 3:
In this we pass a non existing Business Key */
arrayBusiness = new businessKey[2];
for (i = 0; i < 1; i++)
{
arrayBusiness[i] = new char[100];
strcpy(arrayBusiness[0],"05e39405-6216-46bd-8f4c-dad67cda4c15");
}
arrBusinessKeys.set(arrayBusiness,1);
//printf("businessEntity_Array size = %d\n", ws->get_businessDetail(arrBusinessKeys, cpname).m_Size);
//Inquire *ws2 = new Inquire(endpoint);
cout << "\n\ninvoking get_businessDetail ...\n";
businessEntities = ws->get_businessDetail(&arrBusinessKeys, cpname);
outputSize = 0;
arrayOutB = businessEntities->get(outputSize);
//businessEntity_Array get_businessDetail(businessKey_Array Value0,xsd__string Value1);
cout << "businessEntity_Array size = " << outputSize << endl;
for( i = 0; i < outputSize; i++ )
{
cout << "Business Entity " << i + 1 << endl;
cout << "\t Business Key Ref = " << arrayOutB[i]->businessKey_Ref << endl;
cout << "\t Operator = " << arrayOutB[i]->_operator;
cout << "\t Authorized Name = " << arrayOutB[i]->authorizedName;
cout << "\t Names... \n";
int outputSizeBE = 0;
name** arrayBE = arrayOutB[i]->name_Ref->get(outputSizeBE);
for( int j = 0; j < outputSizeBE; j++)
{
cout << "\t\t Description " << j + 1 << " = " << arrayBE[j]->name_value;
}
if( arrayOutB[i]->businessServices_Ref )
{
cout << "\t Business Services...\n" ;
int outputSizeBS = 0;
businessService ** arrayOutBS = arrayOutB[i]->businessServices_Ref->businessService_Ref->get(outputSizeBS);
for( int j = 0; j < outputSizeBS; j++ )
{
cout << "\t\t Business Service " << j + 1 << endl;
cout << "\t\t\t service key referance = "<< arrayOutBS[j]->serviceKey_Ref << endl;
cout << "\t\t\t business key referance = " << arrayOutBS[j]->serviceKey_Ref << endl;
if( arrayOutBS[j]->bindingTemplates_Ref )
{
cout << "\t\t\t Binding Templates...\n" ;
int outputSizeBT=0;
bindingTemplate ** arrayOutBT = arrayOutBS[j]->bindingTemplates_Ref->bindingTemplate_Ref->get(outputSizeBT);
for( int k = 0; k < outputSizeBT; k++ )
{
cout << "\t\t\t\t Access Point " << k + 1 << endl;
if( arrayOutBT[k]->accessPoint_Ref )
{
cout << "\t\t\t\t\t Point = " << arrayOutBT[k]->accessPoint_Ref->accessPoint_value << endl;
cout << "\t\t\t\t\t URL Type = " << arrayOutBT[k]->accessPoint_Ref->URLType_Ref << endl;
}
}
}
}
}
//printf("overviewURL = %s\n", result.m_Array[i].overviewDoc_Ref->overviewURL);
}
bSuccess = true;
/*name* val1 = new name();
val1->name_value = "TEST";
tModelInfos* tModels = ws->find_tModel(NULL, val1, NULL, NULL, "2.0",5);
printf("tModel info size = %d\n", tModels->tModelInfo_Ref.m_Size);
*/
}
catch(AxisException& e)
{
bool bSilent = false;
if( e.getExceptionCode() == CLIENT_TRANSPORT_OPEN_CONNECTION_FAILED)
{
if( iRetryIterationCount > 0)
{
bSilent = true;
}
}
else
{
iRetryIterationCount = 0;
}
if( !bSilent)
{
printf("Exception caught : %s\n", e.what());
}
}
iRetryIterationCount--;
} while( iRetryIterationCount > 0 && !bSuccess);
return 0;
}