<?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="springCriteriaInterceptor"/>				
			<interceptor name="resultsInterceptor" class="gr.uoa.di.driver.web.interceptors.ResultsInterceptor" />
			<interceptor name="refineDataInterceptor" class="springRefineDataInterceptor" />
			<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="springBrowseDataInterceptor" />
			<interceptor name="prepareBrowseDataInterceptor" class="gr.uoa.di.driver.web.interceptors.PrepareBrowseData" />				
			<interceptor name="history" class="gr.uoa.di.driver.web.interceptors.HistoryInterceptor" />
			
			<interceptor-stack name="searchStack">				
	        	<interceptor-ref name="i18n"/>
				<interceptor-ref name="criteriaInterceptor" />
				<interceptor-ref name="resultsInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
			
			<interceptor-stack name="refineStack">
				<interceptor-ref name="i18n"/>
				<interceptor-ref name="criteriaInterceptor" />
				<interceptor-ref name="refineDataInterceptor" />
				<interceptor-ref name="prepareBrowseDataInterceptor"/>
				<interceptor-ref name="resultsInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>

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

           <interceptor-stack name="relationStack">
				<interceptor-ref name="i18n"/>
				<interceptor-ref name="relationDocumentsInterceptor" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
			
			<interceptor-stack name="browseStack">
				<interceptor-ref name="i18n"/>
				<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/results/html/searchResults.jsp</result>
		</action>
		
		<action name="RefineFormPage" class="gr.uoa.di.driver.web.SearchFormPage">
			<result>/pages/search/refineForm.jsp</result>
		</action>

		<action name="ShowDocument" class="gr.uoa.di.driver.web.DocumentDetailsPage">
			<result>/pages/search/documentDetails.jsp</result>
			<result name="xml">/pages/search/results/xml/documentDetails.jsp</result>
			<result name="error">/pages/search/publisherError.jsp</result>
			<result name="xmlError">/pages/search/results/xml/error.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>
						
		<action name="xmlCriteria" class="springManagedXmlSearchFormAction" method="xmlCriteria">
			<interceptor-ref name="criteriaStack"/>			
			<result>/pages/search/form/xml/criteriaForm.jsp</result>			
		</action>
				
	</package>
	
</struts>
