javax.mail
Class Service

java.lang.Object
  extended by javax.mail.Service
Direct Known Subclasses:
Store, Transport

public abstract class Service
extends Object

Version:
$Rev: 597092 $ $Date: 2007-11-21 09:02:38 -0500 (Wed, 21 Nov 2007) $

Field Summary
protected  boolean debug
          Debug flag for this service, set from the Session's debug flag.
protected  Session session
          The session from which this service was created.
protected  URLName url
          The URLName of this service
 
Constructor Summary
protected Service(Session session, URLName url)
          Construct a new Service.
 
Method Summary
 void addConnectionListener(ConnectionListener listener)
           
 void close()
          Close this service and terminate its physical connection.
 void connect()
          A generic connect method that takes no parameters allowing subclasses to implement an appropriate authentication scheme.
 void connect(String host, int port, String user, String password)
          Connect to the specified host at the specified port using a simple username/password authenticaion scheme.
 void connect(String user, String password)
          Connect to the specified host using a simple username/password authenticaion scheme and the default host and port.
 void connect(String host, String user, String password)
          Connect to the specified host using a simple username/password authenticaion scheme and the default port.
protected  void finalize()
           
 URLName getURLName()
          Return a copy of the URLName representing this service with the password and file information removed.
 boolean isConnected()
          Check if this service is currently connected.
protected  void notifyConnectionListeners(int type)
           
protected  boolean protocolConnect(String host, int port, String user, String password)
          Attempt the protocol-specific connection; subclasses should override this to establish a connection in the appropriate manner.
protected  void queueEvent(MailEvent event, Vector listeners)
           
 void removeConnectionListener(ConnectionListener listener)
           
protected  void setConnected(boolean connected)
          Notification to subclasses that the connection state has changed.
protected  void setURLName(URLName url)
          Set the url field.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

session

protected Session session
The session from which this service was created.


url

protected URLName url
The URLName of this service


debug

protected boolean debug
Debug flag for this service, set from the Session's debug flag.

Constructor Detail

Service

protected Service(Session session,
                  URLName url)
Construct a new Service.

Parameters:
session - the session from which this service was created
url - the URLName of this service
Method Detail

connect

public void connect()
             throws MessagingException
A generic connect method that takes no parameters allowing subclasses to implement an appropriate authentication scheme. The default implementation calls connect(null, null, null)

Throws:
AuthenticationFailedException - if authentication fails
MessagingException - for other failures

connect

public void connect(String host,
                    String user,
                    String password)
             throws MessagingException
Connect to the specified host using a simple username/password authenticaion scheme and the default port. The default implementation calls connect(host, -1, user, password)

Parameters:
host - the host to connect to
user - the user name
password - the user's password
Throws:
AuthenticationFailedException - if authentication fails
MessagingException - for other failures

connect

public void connect(String user,
                    String password)
             throws MessagingException
Connect to the specified host using a simple username/password authenticaion scheme and the default host and port. The default implementation calls connect(host, -1, user, password)

Parameters:
user - the user name
password - the user's password
Throws:
AuthenticationFailedException - if authentication fails
MessagingException - for other failures

connect

public void connect(String host,
                    int port,
                    String user,
                    String password)
             throws MessagingException
Connect to the specified host at the specified port using a simple username/password authenticaion scheme. If this Service is already connected, an IllegalStateException is thrown.

Parameters:
host - the host to connect to
port - the port to connect to; pass -1 to use the default for the protocol
user - the user name
password - the user's password
Throws:
AuthenticationFailedException - if authentication fails
MessagingException - for other failures
IllegalStateException - if this service is already connected

protocolConnect

protected boolean protocolConnect(String host,
                                  int port,
                                  String user,
                                  String password)
                           throws MessagingException
Attempt the protocol-specific connection; subclasses should override this to establish a connection in the appropriate manner. This method should return true if the connection was established. It may return false to cause the connect(String, int, String, String) method to reattempt the connection after trying to obtain user and password information from the user. Alternatively it may throw a AuthenticatedFailedException to abandon the conection attempt.

Parameters:
host - The target host name of the service.
port - The connection port for the service.
user - The user name used for the connection.
password - The password used for the connection.
Returns:
true if a connection was established, false if there was authentication error with the connection.
Throws:
AuthenticationFailedException - if authentication fails
MessagingException - for other failures

isConnected

public boolean isConnected()
Check if this service is currently connected. The default implementation simply returns the value of a private boolean field; subclasses may wish to override this method to verify the physical connection.

Returns:
true if this service is connected

setConnected

protected void setConnected(boolean connected)
Notification to subclasses that the connection state has changed. This method is called by the connect() and close() methods to indicate state change; subclasses should also call this method if the connection is automatically closed for some reason.

Parameters:
connected - the connection state

close

public void close()
           throws MessagingException
Close this service and terminate its physical connection. The default implementation simply calls setConnected(false) and then sends a CLOSED event to all registered ConnectionListeners. Subclasses overriding this method should still ensure it is closed; they should also ensure that it is called if the connection is closed automatically, for for example in a finalizer.

Throws:
MessagingException - if there were errors closing; the connection is still closed

getURLName

public URLName getURLName()
Return a copy of the URLName representing this service with the password and file information removed.

Returns:
the URLName for this service

setURLName

protected void setURLName(URLName url)
Set the url field.

Parameters:
url - the new value

addConnectionListener

public void addConnectionListener(ConnectionListener listener)

removeConnectionListener

public void removeConnectionListener(ConnectionListener listener)

notifyConnectionListeners

protected void notifyConnectionListeners(int type)

toString

public String toString()
Overrides:
toString in class Object

queueEvent

protected void queueEvent(MailEvent event,
                          Vector listeners)

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable


Copyright © 2003-2009 The Apache Software Foundation. All Rights Reserved.