/*
 * JBoss, the OpenSource J2EE webOS
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */

// $Id: Stub.java,v 1.1.2.8 2005/08/03 21:22:47 jgreene Exp $
package org.jboss.webservice.client;

import java.util.Iterator;

// $Id: Stub.java,v 1.1.2.8 2005/08/03 21:22:47 jgreene Exp $


/**
 * JBossWS client stubs implement this interface.
 *
 * It provides access to the standard properties via convenience methods
 * and adds some propriatary properties as well.
 *
 * for an implementation of the interface see {@link org.jboss.webservice.client.PortProxy}
 *
 * @author Thomas.Diesler@jboss.org
 * @since 09-Nov-2004
 */
public interface Stub extends javax.xml.rpc.Stub
{
   /** Client timeout property: org.jboss.webservice.timeout */
   static final String PROPERTY_CLIENT_TIMEOUT = "org.jboss.webservice.client.timeout";
   /** Transport property: keyStore */
   static final String PROPERTY_KEY_STORE = "org.jboss.webservice.keyStore";
   /** Transport property: keyStorePassword */
   static final String PROPERTY_KEY_STORE_PASSWORD = "org.jboss.webservice.keyStorePassword";
   /** Transport property: keyStoreType */
   static final String PROPERTY_KEY_STORE_TYPE = "org.jboss.webservice.keyStoreType";
   /** Transport property: trustStore */
   static final String PROPERTY_TRUST_STORE = "org.jboss.webservice.trustStore";
   /** Transport property: trustStorePassword */
   static final String PROPERTY_TRUST_STORE_PASSWORD = "org.jboss.webservice.trustStorePassword";
   /** Transport property: trustStoreType */
   static final String PROPERTY_TRUST_STORE_TYPE = "org.jboss.webservice.trustStoreType";

   /** Client timeout property: org.jboss.webservice.client.timeout
    * @deprecated
    */
   static final String CLIENT_TIMEOUT_PROPERTY = PROPERTY_CLIENT_TIMEOUT;

   String getUsername();

   void setUsername(String username);

   String getPassword();

   void setPassword(String password);

   String getEndpointAddress();

   void setEndpointAddress(String endpoint);

   Boolean getSessionMaintain();

   void setSessionMaintain(Boolean maintainSession);

   Integer getTimeout();

   void setTimeout(Integer timeout);

   void addAttachment(String contentID, Object mimepart);

   void removeAttachment(String contentID);

   Iterator getAttachmentIdentifiers();

   Object getAttachment(String contentID);

   Object getTransportOption(String option);

   void setTransportOption(String option, Object value);
}