<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<package name="search" namespace="/" extends="struts-default">
        
		<interceptors>

			<interceptor name="criteriaInterceptor" class="gr.uoa.di.driver.web.interceptors.CriteriaInterceptor" />				
			<interceptor name="resultsInterceptor" class="gr.uoa.di.driver.web.interceptors.ResultsInterceptor" />
			<interceptor name="docPageInterceptor" class="gr.uoa.di.driver.web.interceptors.PrepareDocumentPage" />
			<interceptor name="refineDataInterceptor" class="gr.uoa.di.driver.web.interceptors.RefineDataInterceptor" />
			<interceptor name="similarityDocumentsInterceptor" class="gr.uoa.di.driver.web.interceptors.SimilarityDocumentsInterceptor" />
			<interceptor name="relationDocumentsInterceptor" class="gr.uoa.di.driver.web.interceptors.RelationDocumentsInterceptor" />
			<interceptor name="browseDataInterceptor" class="gr.uoa.di.driver.web.interceptors.BrowseDataInterceptor" />
			<interceptor name="prepareBrowseDataInterceptor" class="gr.uoa.di.driver.web.interceptors.PrepareBrowseData" />				
			<interceptor name="localeInterceptor" class="gr.uoa.di.driver.web.interceptors.LocaleInterceptor" />
			
			<interceptor-stack name="searchStack">				
	        	<interceptor-ref name="i18n"/>
	        	<interceptor-ref name="localeInterceptor"/>											
				<interceptor-ref name="criteriaInterceptor" />
				<interceptor-ref name="resultsInterceptor" />
				<interceptor-ref name="docPageInterceptor"/>
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
			
			<interceptor-stack name="refineStack">
				<interceptor-ref name="i18n"/>
	        	<interceptor-ref name="localeInterceptor"/>							
				<interceptor-ref name="criteriaInterceptor" />
				<interceptor-ref name="refineDataInterceptor" />
				<interceptor-ref name="prepareBrowseDataInterceptor"/>
				<interceptor-ref name="resultsInterceptor" />
				<interceptor-ref name="docPageInterceptor"/>
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>

			<interceptor-stack name="criteriaStack">
				<interceptor-ref name="i18n"/>
	        	<interceptor-ref name="localeInterceptor"/>
				<interceptor-ref name="criteriaInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
			
			<interceptor-stack name="similarityStack">
				<interceptor-ref name="localeInterceptor"/>
				<interceptor-ref name="similarityDocumentsInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>

           <interceptor-stack name="relationStack">
				<interceptor-ref name="i18n"/>
	        	<interceptor-ref name="localeInterceptor"/>
				<interceptor-ref name="relationDocumentsInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
			
			<interceptor-stack name="browseStack">
				<interceptor-ref name="i18n"/>
	        	<interceptor-ref name="localeInterceptor"/>
				<interceptor-ref name="browseDataInterceptor"/>
				<interceptor-ref name="prepareBrowseDataInterceptor"/>
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>

		</interceptors>

		<default-interceptor-ref name="defaultStack" />

		<global-results>
			<result name="error">/pages/search/searchError.jsp
			</result>
		</global-results>
		
		<action name="SearchFormPage" class="gr.uoa.di.driver.web.SearchFormPage">
			<interceptor-ref name="criteriaStack" />
			<result>/pages/search/searchForm.jsp</result>
		</action>

		<action name="DateFormPage" class="gr.uoa.di.driver.web.DateFormPage">
			<result>/pages/search/dateForm.jsp</result>
		</action>
		
		<action name="CheckBoxFormPage" class="gr.uoa.di.driver.web.CheckBoxFormPage">
			<result>/pages/search/checkBoxForm.jsp</result>
		</action>
		
		<action name="readFieldValues" class="gr.uoa.di.driver.web.CheckBoxFormPage" method="readFieldValues">
			<result>/pages/search/checkBoxForm.jsp</result>
		</action>

		<action name="SearchResultsPage" class="gr.uoa.di.driver.web.SearchResultsPage">
			<result>/pages/search/searchResults.jsp</result>
		</action>
		
		<action name="showResults" class="gr.uoa.di.driver.web.ShowResults">
			<interceptor-ref name="searchStack" />
			<result>/pages/search/search.jsp</result>
			<result name="rss">/pages/search/rssResults.jsp</result>
		</action>
		
		<action name="RefineFormPage" class="gr.uoa.di.driver.web.SearchFormPage">
			<result>/pages/search/refineForm.jsp</result>
		</action>
		
		<action name="refineResults" class="gr.uoa.di.driver.web.RefineResults">
			<interceptor-ref name="refineStack" />
			<result>/pages/search/refine.jsp</result>
		</action>

		<action name="ShowDocument" class="gr.uoa.di.driver.web.DocumentDetailsPage">
			<result>/pages/search/documentDetails.jsp</result>
			<result name="error">/pages/search/publisherError.jsp</result>
		</action>

		<action name="Welcome" class="springWelcomePageAction">
			<result>/pages/search/welcome.jsp</result>
		</action>
		
		<action name="browseData" class="gr.uoa.di.driver.web.BrowseDataPage">
			<interceptor-ref name="browseStack"/>
			<result>/pages/search/browseData.jsp</result>
			<result name="error">/pages/search/searchError.jsp</result>
		</action>

		<action name="showSimilar" >
			<interceptor-ref name="similarityStack"/> 
			<result>/pages/search/similarity.jsp</result>
			<result name="publisherError">/pages/search/publisherError.jsp</result>
			<result name="similarityError">/pages/search/similarityError.jsp</result>
		</action>

		<action name="showRelated" >
			<interceptor-ref name="relationStack"/>
			<result>/pages/search/relation.jsp</result>
			<result name="publisherError">/pages/search/publisherError.jsp</result>
			<result name="similarityError">/pages/search/relationError.jsp</result>
		</action>

		<action name="RelationResultsPage" class="gr.uoa.di.driver.web.RelationResultsPage">
			<result>/pages/search/relationResults.jsp</result>
			<result name="publisherError">/pages/search/publisherError.jsp</result>
		</action>

                <action name="SimilarityResultsPage" class="gr.uoa.di.driver.web.SimilarityResultsPage">
			<result>/pages/search/similarityResults.jsp</result>
			<result name="publisherError">/pages/search/publisherError.jsp</result>
		</action>

		<action name="DocumentListPage" class="gr.uoa.di.driver.web.DocumentListPage">
			<result>/pages/search/documentList.jsp</result>
		</action>
	</package>
	
</struts>
