/**
* @author Daniel O'Neill 01330128
*
*
*/
import java.io.*;
import java.util.Vector;
import java.util.Iterator;
import java.rmi.RemoteException;
import java.sql.*;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
//import org.apache.axis.utils.Options;
import javax.xml.rpc.ParameterMode;
public class BandBClient {
public static void main(String args[]) throws Exception {
Vector hello = new Vector(20,5);
Vector list = new Vector(20,5);
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
System.out.println("Welcome to something or other:\n\n");
int charlie=0;
while(charlie!=-1){
System.out.println("This is a list of the B&B's in that
area:\n");
list = getList();
for(Iterator i = list.iterator();i.hasNext() ;){
String one =(String)i.next();
if (one!=null){
System.out.println(one+"\n");
}else{
System.out.println("There are no B&B's at this
time. We
apologise for the inconvenience...");
System.exit(0);
}
}
int num = 0;
System.out.println("Please enter the number(i.e. 1 or 2) of
the
B&B you wish you book:");
num = Integer.parseInt(in.readLine());
boolean beta = checknum(num);
if(beta ==true){
System.out.println("Please enter a date:");
String dan = in.readLine();
System.out.println("These are the rooms available
on that date
in this B&B");
String endpoint = getService(num);
String method ="getRooms";
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress( new
java.net.URL(endpoint) );
call.setOperationName( method );
call.addParameter( "op1", XMLType.SOAP_VECTOR,
ParameterMode.IN );
call.setReturnType( XMLType.SOAP_VECTOR );
try {
hello = (Vector) call.invoke( new
Object [] {dan});// This does
all the work!
} catch (RemoteException e) {
// This is used instead of the huge
exception you get....
// I only changed this after debugging
System.out.println("Sorry this service
is not available at the
moment... We're sorry for the inconvenience!");
}
for(Iterator i = hello.iterator();i.hasNext() ;){
String hello2 =(String)i.next();
if (hello2!=null){
System.out.println(hello2);
}else
System.out.println("This B&B has no
available rooms on those dates");
}
System.out.println("If you want to book one of
these rooms on
this date please enter the number now. If you wish to go back to the
main menu please type \"c\" and hit return.");
String delta = in.readLine();
if (delta=="c"){
charlie = 1;
}
else if (delta =="-1"){
charlie = -1;
}
else{
System.out.println("Please enter your name:");
String name = in.readLine();
System.out.println("Please enter your
address:");
String address = in.readLine();
System.out.println("And lastly please enter the
number of
people(altogether) that are going to arrive(e.g. 1 or 2 or 3):");
String numPeeps = in.readLine();
String paid = "no";
String endpoint2 = getService(num);
String method2 ="bookRoom";
Service service2 = new Service();
Call call2 = (Call)
service2.createCall();
call2.setTargetEndpointAddress( new
java.net.URL(endpoint2) );
call2.setOperationName( method2 );
call2.addParameter( "op1",
XMLType.SOAP_STRING, ParameterMode.IN );
call2.addParameter( "op2",
XMLType.SOAP_STRING, ParameterMode.IN );
call2.addParameter( "op3",
XMLType.SOAP_STRING, ParameterMode.IN );
call2.addParameter( "op4",
XMLType.SOAP_STRING, ParameterMode.IN );
call2.addParameter( "op5",
XMLType.SOAP_STRING, ParameterMode.IN );
call2.addParameter( "op6",
XMLType.SOAP_STRING, ParameterMode.IN );
try {
call2.invoke( new Object []
{delta,dan,name,address,numPeeps,paid});
}catch (RemoteException e1) {
// TODO Auto-generated catch
block
e1.printStackTrace();
System.out.println("That did't
work for some reason....");
System.exit(0);
}
System.out.println("Do you want to see
some of the other services
that are in the area?");
BufferedReader st = new
BufferedReader(new InputStreamReader(System.in));
String maybe = st.readLine();
if (maybe.equals("yes") ||
maybe.equals("y")){
Vector foxtrot = new
Vector(20,5);
foxtrot = getLocalServices();
for(Iterator i =
foxtrot.iterator();i.hasNext() ;){
String hello2 =(String)i.next();
if (hello2!=null){
System.out.println(hello2);
}else{
System.out.println("There are no local services... Go away now... ");
System.exit(0);
}
}
System.out.println("Which one
do you want to look at?(i.e. 1 or 2)");
String geography =
in.readLine();
}else {
System.out.println("Here is
what you booked:");
System.out.println("You booked
"+getName(num)+" for the
"+delta+" for "+numPeeps+" people.");
charlie = -1;
}
}
}
else{
System.out.println("I'm sorry that number wasn't on the
list....");
}
}
}
--------------------------------------------------------------
Sorry its so big buts its the first code example I came to? It might
not be right but it works. I've left a number of non-important(to this
question) methods out. If anyone wants to correct the code go ahead?
Thanks