
        /**
        * AgentRequestStub.java
        *
        * This file was auto-generated from WSDL
        * by the Apache Axis2 version: 1.0 May 05, 2006 (12:31:13 IST)
        */
        package org.apache.axis2;

        

        /*
        *  AgentRequestStub java implementation
        */

        
        public class AgentRequestStub extends org.apache.axis2.client.Stub
        {
        //default axis home being null forces the system to pick up the mars from the axis2 library
        public static final java.lang.String AXIS2_HOME = null;
        protected static org.apache.axis2.description.AxisOperation[] _operations;

        //hashmaps to keep the fault mapping
        private java.util.HashMap faultExeptionNameMap = new java.util.HashMap();
        private java.util.HashMap faultExeptionClassNameMap = new java.util.HashMap();
        private java.util.HashMap faultMessageMap = new java.util.HashMap();

	
    private void populateAxisService(){

        //creating the Service
        _service = new org.apache.axis2.description.AxisService("AgentRequest");
	

        //creating the operations
        org.apache.axis2.description.AxisOperation __operation;
	


        _operations = new org.apache.axis2.description.AxisOperation[2];
        
                   __operation = new org.apache.axis2.description.OutInAxisOperation();
                

            __operation.setName(new javax.xml.namespace.QName("", "agentLogin"));

	    

            _operations[0]=__operation;
            _service.addOperation(__operation);
        
                    __operation = new org.apache.axis2.description.OutOnlyAxisOperation();
                

            __operation.setName(new javax.xml.namespace.QName("", "agentSimple"));

	    

            _operations[1]=__operation;
            _service.addOperation(__operation);
        
        }

    //populates the faults
    private void populateFaults(){
         
              faultExeptionNameMap.put( new javax.xml.namespace.QName(
                 "http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0",
                 "DialerFault"),
                 "org.apache.axis2.AgentRequestStub.DialerFaultMessageException"
               );
              faultExeptionClassNameMap.put(new javax.xml.namespace.QName(
                "http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0",
                "DialerFault"),
                "org.apache.axis2.AgentRequestStub$DialerFaultMessageException");
               faultMessageMap.put( new javax.xml.namespace.QName(
                 "http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0",
                 "DialerFault"),
                 ""
               );
           


    }

     public AgentRequestStub(org.apache.axis2.context.ConfigurationContext configurationContext,
        java.lang.String targetEndpoint)
        throws java.lang.Exception {
         //To populate AxisService
         populateAxisService();
         populateFaults();
	
	
        _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
        _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
                targetEndpoint));
        
    }

    /**
     * Default Constructor
     */
    public AgentRequestStub() throws java.lang.Exception {
        
                    this("http://192.192.1.70:1776" );
                
    }

    /**
     * Constructor taking the target endpoint
     */
    public AgentRequestStub(java.lang.String targetEndpoint) throws java.lang.Exception {
        this(org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(AXIS2_HOME,null),
                targetEndpoint);
    }



        
                    /**
                    * Auto generated method signature
                    * @see org.apache.axis2.AgentRequest#agentLogin
                        * @param param3
                    
                    */
                    public com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO agentLogin(
                    com.crsoftwareinc.crs.dialer.dto.AgentLoginRequestDTO param3)
                    throws java.rmi.RemoteException
                    
                    
                        ,org.apache.axis2.AgentRequestStub.DialerFaultMessageException{
              try{
               org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
              _operationClient.getOptions().setAction("http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0/agentLogin");
              _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);

              

              // create SOAP envelope with that payload
              org.apache.axiom.soap.SOAPEnvelope env = null;
                    
                                    //Style is Doc.
                                    
                                    
                                                 env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()),
                                                param3,
                                                optimizeContent(new javax.xml.namespace.QName("",
                                                "agentLogin")));
                                            

        // create message context with that soap envelope
        org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext() ;
        _messageContext.setEnvelope(env);

        // add the message contxt to the operation client
        _operationClient.addMessageContext(_messageContext);

        //execute the operation client
        _operationClient.execute(true);

         
               org.apache.axis2.context.MessageContext _returnMessageContext = _operationClient.getMessageContext(
                                           org.apache.axis2.wsdl.WSDLConstants.MESSAGE_LABEL_IN_VALUE);
                org.apache.axiom.soap.SOAPEnvelope _returnEnv = _returnMessageContext.getEnvelope();
                
                
                           java.lang.Object object = fromOM(
                                        getElement(_returnEnv,"document"),
                                        com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO.class,
                                         getEnvelopeNamespaces(_returnEnv));
                           _messageContext.getTransportOut().getSender().cleanup(_messageContext);
                           return (com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO)object;
                    
         }catch(org.apache.axis2.AxisFault f){
            org.apache.axiom.om.OMElement faultElt = f.getDetail();
            if (faultElt!=null){
                if (faultExeptionNameMap.containsKey(faultElt.getQName())){
                    //make the fault by reflection
                    try{
                        java.lang.String exceptionClassName = (java.lang.String)faultExeptionClassNameMap.get(faultElt.getQName());
                        java.lang.Class exceptionClass = java.lang.Class.forName(exceptionClassName);
                        java.rmi.RemoteException ex=
                                (java.rmi.RemoteException)exceptionClass.newInstance();
                        //message class
                        java.lang.String messageClassName = (java.lang.String)faultMessageMap.get(faultElt.getQName());
                        java.lang.Class messageClass = java.lang.Class.forName(messageClassName);
                        java.lang.Object messageObject = fromOM(faultElt,messageClass,null);
                        java.lang.reflect.Method m = exceptionClass.getMethod("setFaultMessage",
                                   new java.lang.Class[]{messageClass});
                        m.invoke(ex,new java.lang.Object[]{messageObject});
                        
                        if (ex instanceof org.apache.axis2.AgentRequestStub.DialerFaultMessageException){
                          throw (org.apache.axis2.AgentRequestStub.DialerFaultMessageException)ex;
                        }
                        

                        throw ex;
                    }catch(java.lang.ClassCastException e){
                       // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    } catch (java.lang.ClassNotFoundException e) {
                        // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    }catch (java.lang.NoSuchMethodException e) {
                        // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    } catch (java.lang.reflect.InvocationTargetException e) {
                        // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    }  catch (java.lang.IllegalAccessException e) {
                        // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    }   catch (java.lang.InstantiationException e) {
                        // we cannot intantiate the class - throw the original Axis fault
                        throw f;
                    }
                }else{
                    throw f;
                }
            }else{
                throw f;
            }
        }
        }
            
                /**
                * Auto generated method signature for Asynchronous Invocations
                * @see org.apache.axis2.AgentRequest#startagentLogin
                    * @param param3
                
                */
                public  void startagentLogin(
                com.crsoftwareinc.crs.dialer.dto.AgentLoginRequestDTO param3,final org.apache.axis2.AgentRequestCallbackHandler callback)

                throws java.rmi.RemoteException{

              org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[0].getName());
             _operationClient.getOptions().setAction("http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0/agentLogin");
             _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);

          

              // create SOAP envelope with that payload
              org.apache.axiom.soap.SOAPEnvelope env=null;
                    
                                    //Style is Doc.
                                    
                                                 env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()), param3, optimizeContent(new javax.xml.namespace.QName("", "agentLogin")));
                                            

        // create message context with that soap envelope
        org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext() ;
        _messageContext.setEnvelope(env);

        // add the message contxt to the operation client
        _operationClient.addMessageContext(_messageContext);


                    
                           _operationClient.setCallback(new org.apache.axis2.client.async.Callback() {
                    public void onComplete(
                            org.apache.axis2.client.async.AsyncResult result) {
                        java.lang.Object object = fromOM(getElement(
                                result.getResponseEnvelope(), "document"),
                               com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO.class,
                               getEnvelopeNamespaces(result.getResponseEnvelope())
                            );
                        callback.receiveResultagentLogin((com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO) object);
                    }

                    public void onError(java.lang.Exception e) {
                        callback.receiveErroragentLogin(e);
                    }
                });
                        

          org.apache.axis2.util.CallbackReceiver _callbackReceiver = null;
        if ( _operations[0].getMessageReceiver()==null &&  _operationClient.getOptions().isUseSeparateListener()) {
           _callbackReceiver = new org.apache.axis2.util.CallbackReceiver();
          _operations[0].setMessageReceiver(
                    _callbackReceiver);
        }

           //execute the operation client
           _operationClient.execute(false);

                    }
                
                
                public void  agentSimple(
                com.crsoftwareinc.crs.dialer.dto.AgentSimpleActionDTO param5) throws java.rmi.RemoteException{

                org.apache.axis2.client.OperationClient _operationClient = _serviceClient.createClient(_operations[1].getName());
                _operationClient.getOptions().setAction("http://www.crsoftwareinc.com/xml/ns/telecom/agent_request_v1_0/agentSimple");
                _operationClient.getOptions().setExceptionToBeThrownOnSOAPFault(true);

                
                org.apache.axiom.soap.SOAPEnvelope env = null;

                
                                
                                //Style is Doc.
                                env = toEnvelope(getFactory(_operationClient.getOptions().getSoapVersionURI()), param5, optimizeContent(new javax.xml.namespace.QName("", "agentSimple")));
                            

                // create message context with that soap envelope
            org.apache.axis2.context.MessageContext _messageContext = new org.apache.axis2.context.MessageContext() ;
            _messageContext.setEnvelope(env);

            // add the message contxt to the operation client
            _operationClient.addMessageContext(_messageContext);

             _operationClient.execute(true);
             return;
           }
            

       /**
        *  A utility method that copies the namepaces from the SOAPEnvelope
        */
       private java.util.Map getEnvelopeNamespaces(org.apache.axiom.soap.SOAPEnvelope env){
        java.util.Map returnMap = new java.util.HashMap();
        java.util.Iterator namespaceIterator = env.getAllDeclaredNamespaces();
        while (namespaceIterator.hasNext()) {
            org.apache.axiom.om.OMNamespace ns = (org.apache.axiom.om.OMNamespace) namespaceIterator.next();
            returnMap.put(ns.getPrefix(),ns.getName());
        }
       return returnMap;
    }

    
	
    private javax.xml.namespace.QName[] opNameArray = null;
	private boolean optimizeContent(javax.xml.namespace.QName opName) {
        

        if (opNameArray == null) {
			return false;
		}
		for (int i = 0; i < opNameArray.length; i++) {
			if (opName.equals(opNameArray[i])) {
				return true;   
			}
		}
		return false;
	}


     
   
         public static class DialerFaultMessageException extends java.rmi.RemoteException{

            private org.apache.axiom.om.OMElement faultMessage;

            public void setFaultMessage(org.apache.axiom.om.OMElement msg){
               faultMessage = msg;
            }

            public org.apache.axiom.om.OMElement getFaultMessage(){
               return faultMessage;
            }
         }
   

    //http://192.192.1.70:1776
                    private static final org.jibx.runtime.IBindingFactory bindingFactory;
                    static {
                        org.jibx.runtime.IBindingFactory factory = null;
                        try {
                            factory = org.jibx.runtime.BindingDirectory.getFactory(org.apache.axiom.om.OMElement.class);
                        } catch (Exception e) { /** intentionally empty - report error on usage attempt */ }
                        bindingFactory = factory;
                    };
                
                
                private org.apache.axiom.om.OMElement toOM(org.apache.axiom.om.OMElement param, org.apache.axiom.soap.SOAPFactory factory, boolean optimizeContent) {
                    if (param instanceof org.jibx.runtime.IMarshallable){
                        if (bindingFactory == null) {
                            throw new RuntimeException("Could not find JiBX binding information for org.apache.axiom.om.OMElement, JiBX binding unusable");
                        }
                        org.jibx.runtime.IMarshallable marshallable =
                            (org.jibx.runtime.IMarshallable)param;
                        int index = marshallable.JiBX_getIndex();
                        org.apache.axis2.jibx.JiBXDataSource source =
                            new org.apache.axis2.jibx.JiBXDataSource(marshallable, bindingFactory);
                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(bindingFactory.getElementNamespaces()[index], null);
                        return factory.createOMElement(source, bindingFactory.getElementNames()[index], namespace);
                    } else {
                        throw new RuntimeException("No JiBX <mapping> defined for class org.apache.axiom.om.OMElement");
                    }
                }
  
                private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, org.apache.axiom.om.OMElement param, boolean optimizeContent) {
                    org.apache.axiom.soap.SOAPEnvelope envelope = factory.getDefaultEnvelope();
                    if (param != null){
                        envelope.getBody().addChild(toOM(param, factory, optimizeContent));
                    }
                    return envelope;
                }
                
            
                
                private org.apache.axiom.om.OMElement toOM(com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO param, org.apache.axiom.soap.SOAPFactory factory, boolean optimizeContent) {
                    if (param instanceof org.jibx.runtime.IMarshallable){
                        if (bindingFactory == null) {
                            throw new RuntimeException("Could not find JiBX binding information for org.apache.axiom.om.OMElement, JiBX binding unusable");
                        }
                        org.jibx.runtime.IMarshallable marshallable =
                            (org.jibx.runtime.IMarshallable)param;
                        int index = marshallable.JiBX_getIndex();
                        org.apache.axis2.jibx.JiBXDataSource source =
                            new org.apache.axis2.jibx.JiBXDataSource(marshallable, bindingFactory);
                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(bindingFactory.getElementNamespaces()[index], null);
                        return factory.createOMElement(source, bindingFactory.getElementNames()[index], namespace);
                    } else {
                        throw new RuntimeException("No JiBX <mapping> defined for class com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO");
                    }
                }
  
                private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, com.crsoftwareinc.crs.dialer.dto.AgentLoginResponseDTO param, boolean optimizeContent) {
                    org.apache.axiom.soap.SOAPEnvelope envelope = factory.getDefaultEnvelope();
                    if (param != null){
                        envelope.getBody().addChild(toOM(param, factory, optimizeContent));
                    }
                    return envelope;
                }
                
            
                
                private org.apache.axiom.om.OMElement toOM(com.crsoftwareinc.crs.dialer.dto.AgentSimpleActionDTO param, org.apache.axiom.soap.SOAPFactory factory, boolean optimizeContent) {
                    if (param instanceof org.jibx.runtime.IMarshallable){
                        if (bindingFactory == null) {
                            throw new RuntimeException("Could not find JiBX binding information for org.apache.axiom.om.OMElement, JiBX binding unusable");
                        }
                        org.jibx.runtime.IMarshallable marshallable =
                            (org.jibx.runtime.IMarshallable)param;
                        int index = marshallable.JiBX_getIndex();
                        org.apache.axis2.jibx.JiBXDataSource source =
                            new org.apache.axis2.jibx.JiBXDataSource(marshallable, bindingFactory);
                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(bindingFactory.getElementNamespaces()[index], null);
                        return factory.createOMElement(source, bindingFactory.getElementNames()[index], namespace);
                    } else {
                        throw new RuntimeException("No JiBX <mapping> defined for class com.crsoftwareinc.crs.dialer.dto.AgentSimpleActionDTO");
                    }
                }
  
                private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, com.crsoftwareinc.crs.dialer.dto.AgentSimpleActionDTO param, boolean optimizeContent) {
                    org.apache.axiom.soap.SOAPEnvelope envelope = factory.getDefaultEnvelope();
                    if (param != null){
                        envelope.getBody().addChild(toOM(param, factory, optimizeContent));
                    }
                    return envelope;
                }
                
            
                
                private org.apache.axiom.om.OMElement toOM(com.crsoftwareinc.crs.dialer.dto.AgentLoginRequestDTO param, org.apache.axiom.soap.SOAPFactory factory, boolean optimizeContent) {
                    if (param instanceof org.jibx.runtime.IMarshallable){
                        if (bindingFactory == null) {
                            throw new RuntimeException("Could not find JiBX binding information for org.apache.axiom.om.OMElement, JiBX binding unusable");
                        }
                        org.jibx.runtime.IMarshallable marshallable =
                            (org.jibx.runtime.IMarshallable)param;
                        int index = marshallable.JiBX_getIndex();
                        org.apache.axis2.jibx.JiBXDataSource source =
                            new org.apache.axis2.jibx.JiBXDataSource(marshallable, bindingFactory);
                        org.apache.axiom.om.OMNamespace namespace = factory.createOMNamespace(bindingFactory.getElementNamespaces()[index], null);
                        return factory.createOMElement(source, bindingFactory.getElementNames()[index], namespace);
                    } else {
                        throw new RuntimeException("No JiBX <mapping> defined for class com.crsoftwareinc.crs.dialer.dto.AgentLoginRequestDTO");
                    }
                }
  
                private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory, com.crsoftwareinc.crs.dialer.dto.AgentLoginRequestDTO param, boolean optimizeContent) {
                    org.apache.axiom.soap.SOAPEnvelope envelope = factory.getDefaultEnvelope();
                    if (param != null){
                        envelope.getBody().addChild(toOM(param, factory, optimizeContent));
                    }
                    return envelope;
                }
                
            
  
        /**
        *  get the default envelope
        */
        private org.apache.axiom.soap.SOAPEnvelope toEnvelope(org.apache.axiom.soap.SOAPFactory factory) {
            return factory.getDefaultEnvelope();
        }
        
        private java.lang.Object fromOM(
            org.apache.axiom.om.OMElement param,
            java.lang.Class type,
            java.util.Map extraNamespaces) {
            try {
                if (bindingFactory == null) {
                    throw new RuntimeException("Could not find JiBX binding information for com.sosnoski.seismic.jibxsoap.Query, JiBX binding unusable");
                }
                org.jibx.runtime.impl.UnmarshallingContext ctx =
                    (org.jibx.runtime.impl.UnmarshallingContext)bindingFactory.createUnmarshallingContext();
                org.jibx.runtime.IXMLReader reader = new org.jibx.runtime.impl.StAXReaderWrapper(param.getXMLStreamReaderWithoutCaching(), "SOAP-message", true);
                ctx.setDocument(reader);
                return ctx.unmarshalElement(type);
            } catch (Exception e) {
                 throw new RuntimeException(e);
            }
        }

    
   }
   