//----------------------------BEGIN LICENSE----------------------------
/* 
 * Willow : the Open Source WorkFlow Project
 * Distributable under GNU LGPL license by gun.org
 *
 * Copyright (C) 2004-2010 huihoo.org 
 * Copyright (C) 2004-2010  ZosaTapo <dertyang@hotmail.com> 
 * 
 * ====================================================================
 * Project Homepage : http://www.huihoo.org/willow
 * Source Forge     : http://sourceforge.net/projects/huihoo
 * Mailing list     : willow@lists.sourceforge.net 
 */
//----------------------------END  LICENSE----------------------------
package org.huihoo.workflow.server;

import java.util.Enumeration;

public interface WorkflowConfig
{
	/**
	 * Returns the name of this workflow instance.
	 * The name may be provided via server administration, assigned in the 
	 * web application deployment descriptor, or for an unregistered (and thus
	 * unnamed) workflow instance it will be the workflow's class name.
	 *
	 * @return		the name of the workflow instance
	 *
	 */

	public String getWorkflowName();

	/**
	 * Returns a reference to the {@link ServletContext} in which the caller
	 * is executing.
	 *
	 *
	 * @return		a {@link WorkflowContext} object, used
	 *			by the caller to interact with its workflow 
	 *                  container
	 * 
	 * @see		WorkflowContext
	 *
	 */

	public WorkflowContext getWorkflowContext();

	/**
	 * Returns a <code>String</code> containing the value of the 
	 * named initialization parameter, or <code>null</code> if 
	 * the parameter does not exist.
	 *
	 * @param name	a <code>String</code> specifying the name
	 *			of the initialization parameter
	 *
	 * @return		a <code>String</code> containing the value 
	 *			of the initialization parameter
	 *
	 */

	public String getInitParameter(String name);

	/**
	 * Returns the names of the workflow's initialization parameters
	 * as an <code>Enumeration</code> of <code>String</code> objects, 
	 * or an empty <code>Enumeration</code> if the workflow has
	 * no initialization parameters.
	 *
	 * @return		an <code>Enumeration</code> of <code>String</code> 
	 *			objects containing the names of the workflow's 
	 *			initialization parameters
	 *
	 *
	 *
	 */

	public Enumeration getInitParameterNames();
}
