/*
 * Created on 28-Feb-2005
 *
 * ShibbolethBrowserSession v1.0
 * Member package of: SoapShibboleth - v1.0
 * 
 * A package of web services which allows any application to validate a user using a Shibboleth setup.
 * It can be used to find out per-resource whether a user has access.  Furthermore, it allows the application
 * to get hold of the specific attributes held about a user for a particular resource.
 * 
 * The set of classes in the package shibbolethBrowserSession.shibbolethBrowserSessionWsdl (ShibbolethBrowserSession)
 * handle the creation of a ShibbolethBrowserSession and allow instances of it to be created, destroyed, inspected
 * and also allow particular methods to be called on that instance (resource).
 */


package shibbolethBrowserSession.shibbolethBrowserSessionWsdl;

import org.apache.ws.resource.ResourceContext;
import org.apache.ws.resource.handler.SoapMethodNameMap;
import org.apache.ws.resource.handler.WsrfService;
import org.apache.ws.resource.handler.ServiceSoapMethodNameMap;
import org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetResourcePropertyDocumentDocument1;

import javax.xml.namespace.QName;

/**
 * This class should be generated on every "generation" against the WSDL.
 * This will ensure it is always up-to-date with the WSDL.
 *
 * NOTE: This class is generated and is NOT meant to be modified.
 */
public abstract class AbstractShibbolethBrowserSessionService
implements org.apache.ws.resource.handler.WsrfService, org.apache.ws.resource.properties.v1_2_draft05.porttype.GetMultipleResourcePropertiesPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.SetResourcePropertiesPortType, org.apache.ws.resource.lifetime.v1_2_draft04.porttype.ImmediateResourceTerminationPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.UpdateResourcePropertiesPortType, org.apache.ws.resource.lifetime.v1_2_draft04.porttype.ScheduledResourceTerminationPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.InsertResourcePropertiesPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.GetResourcePropertyDocumentPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.GetResourcePropertyPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.QueryResourcePropertiesPortType, org.apache.ws.resource.properties.v1_2_draft05.porttype.DeleteResourcePropertiesPortType {
	
	public static final String TARGET_NSURI = "http://ShibbolethBrowserSession/ShibbolethBrowserSession.wsdl";
	public static final String TARGET_NSPREFIX = "ShibbolethBrowserSession.wsdl";
	
	/**
	 * DOCUMENT_ME
	 */
	private ServiceSoapMethodNameMap m_methodNameMap;
	
	/**
	 * DOCUMENT_ME
	 */
	private boolean m_isInitialized;
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestQname DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public String getMethodName( QName requestQname )
	{
		if ( !m_isInitialized )
		{
			init(  );
		}
		
		return m_methodNameMap.getMethodName( requestQname );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public abstract ResourceContext getResourceContext(  );
	
	/**
	 * DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public final SoapMethodNameMap getMethodNameMap(  )
	{
		return m_methodNameMap;
	}
	
	/**
	 * DOCUMENT_ME
	 */
	public void init(  )
	{
		m_methodNameMap    = new ServiceSoapMethodNameMap( getResourceContext(  ) );
		m_methodNameMap.addMapping( javax.xml.namespace.QName.valueOf("{http://ShibbolethBrowserSession/ShibbolethBrowserSession.xsd}VerifySAMLRequest") , "VerifySAML" );
		m_methodNameMap.addMapping( javax.xml.namespace.QName.valueOf("{http://ShibbolethBrowserSession/ShibbolethBrowserSession.xsd}HSLoginRequest") , "HSLogin" );
		m_methodNameMap.addMapping( javax.xml.namespace.QName.valueOf("{http://ShibbolethBrowserSession/ShibbolethBrowserSession.xsd}AccessShibbolizedResourceRequest") , "AccessShibbolizedResource" );
		m_methodNameMap.addMapping( javax.xml.namespace.QName.valueOf("{http://ShibbolethBrowserSession/ShibbolethBrowserSession.xsd}GetUserAttributesRequest") , "GetUserAttributes" );
		m_isInitialized      = true;
	}
	
	
	/**
	 * DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	protected final boolean isInitialized(  )
	{
		return m_isInitialized;
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetMultipleResourcePropertiesResponseDocument getMultipleResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetMultipleResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.GetMultipleResourcePropertiesPortTypeImpl( getResourceContext(  ) ).getMultipleResourceProperties( requestDoc );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.SetResourcePropertiesResponseDocument setResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.SetResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.SetResourcePropertiesPortTypeImpl( getResourceContext(  ) ).setResourceProperties( requestDoc );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.DestroyResponseDocument destroy( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.DestroyDocument requestDoc )
	{
		return new org.apache.ws.resource.lifetime.v1_2_draft04.porttype.impl.ImmediateResourceTerminationPortTypeImpl( getResourceContext(  ) ).destroy( requestDoc );
	}
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.UpdateResourcePropertiesResponseDocument updateResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.UpdateResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.UpdateResourcePropertiesPortTypeImpl( getResourceContext(  ) ).updateResourceProperties( requestDoc );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.SetTerminationTimeResponseDocument setTerminationTime( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.SetTerminationTimeDocument requestDoc )
	{
		return new org.apache.ws.resource.lifetime.v1_2_draft04.porttype.impl.ScheduledResourceTerminationPortTypeImpl( getResourceContext(  ) ).setTerminationTime( requestDoc );
	}
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.InsertResourcePropertiesResponseDocument insertResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.InsertResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.InsertResourcePropertiesPortTypeImpl( getResourceContext(  ) ).insertResourceProperties( requestDoc );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetResourcePropertyDocumentResponseDocument getResourcePropertyDocument( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetResourcePropertyDocumentDocument1.GetResourcePropertyDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.GetResourcePropertyDocumentPortTypeImpl( getResourceContext(  ) ).getResourcePropertyDocument( (GetResourcePropertyDocumentDocument1) requestDoc );
	}
	
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetResourcePropertyResponseDocument getResourceProperty( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.GetResourcePropertyDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.GetResourcePropertyPortTypeImpl( getResourceContext(  ) ).getResourceProperty( requestDoc );
	}
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.QueryResourcePropertiesResponseDocument queryResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.QueryResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.QueryResourcePropertiesPortTypeImpl( getResourceContext(  ) ).queryResourceProperties( requestDoc );
	}
	/**
	 * DOCUMENT_ME
	 *
	 * @param requestDoc DOCUMENT_ME
	 *
	 * @return DOCUMENT_ME
	 */
	public org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.DeleteResourcePropertiesResponseDocument deleteResourceProperties( org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceProperties12Draft05.DeleteResourcePropertiesDocument requestDoc )
	{
		return new org.apache.ws.resource.properties.v1_2_draft05.porttype.impl.DeleteResourcePropertiesPortTypeImpl( getResourceContext(  ) ).deleteResourceProperties( requestDoc );
	}
	
	
}
