/*
 * Created on 2004-6-26
 *
 * To change the template for this generated file go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
package org.huihoo.willow;


/**
 * @author reic
 *
 * To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Generation - Code and Comments
 */
public interface Provider
{
	// ------------------------------------------------------------- Properties

	/**
	 * Return the Container used for processing requests received by this
	 * ServiceProviderProvider.
	 */
	public Container getContainer();

	/**
	 * Set the Container used for processing requests received by this
	 * ServiceProviderProvider.
	 *
	 * @param container The new Container to use
	 */
	public void setContainer(Container container);

	/**
	 * Return descriptive information about this ServiceProviderProvider implementation.
	 */
	public String getInfo();

	/**
	 * Return the <code>Service</code> with which we are associated (if any).
	 */
	public Service getService();

	/**
	 * Set the <code>Service</code> with which we are associated (if any).
	 *
	 * @param Service The Service that owns this Engine
	 */
	public void setService(Service service);


	// --------------------------------------------------------- Public Methods
	/**
	 * Invoke a pre-startup initialization. This is used to allow ServiceProviders
	 * to bind to restricted ports under Unix operating environments.
	 *
	 * @exception LifecycleException If this server was already initialized.
	 */
	public void initialize() throws LifecycleException;
}
