<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at
    
    http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

  <bean id="url" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
    <property name="shortOption" value="u" />
    <property name="longOption" value="url" />
    <property name="description" value="Server URL" />
    <property name="hasArgs" value="true" />
    <property name="argsDescription" value="url" />
    <property name="required" value="true" />
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.SetJavaPropertiesHandler">
        <property name="propertyNames">
          <list>
            <value>org.apache.oodt.cas.catalog.url</value>
          </list>
        </property>
      </bean>
    </property>
    <property name="validators">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.validator.ArgRegExpCmdLineOptionValidator">
          <property name="allowedArgs">
            <list>
              <value>http://.*:\d*</value>
            </list>
          </property>
        </bean>
      </list>
    </property>
  </bean>

  <bean id="chunkSize" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
    <property name="shortOption" value="cs" />
    <property name="longOption" value="chunkSize" />
    <property name="description" value="XML-RPC data chunk size in bytes" />
    <property name="hasArgs" value="true" />
    <property name="argsDescription" value="int" />
    <property name="required" value="false" />
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.SetJavaPropertiesHandler">
        <property name="propertyNames">
          <list>
            <value>org.apache.oodt.cas.catalog.chunkSize</value>
          </list>
        </property>
      </bean>
    </property>
  </bean>

  <bean id="requestTimeout" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
    <property name="shortOption" value="rqt" />
    <property name="longOption" value="requestTimeout" />
    <property name="description" value="XML-RPC request timeout in seconds" />
    <property name="hasArgs" value="true" />
    <property name="argsDescription" value="int" />
    <property name="required" value="false" />
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.SetJavaPropertiesHandler">
        <property name="propertyNames">
          <list>
            <value>org.apache.oodt.cas.catalog.requestTimeout</value>
          </list>
        </property>
      </bean>
    </property>
  </bean>

  <bean id="connectionTimeout" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
    <property name="shortOption" value="ct" />
    <property name="longOption" value="connectionTimeout" />
    <property name="description" value="XML-RPC connection timeout in seconds" />
    <property name="hasArgs" value="true" />
    <property name="argsDescription" value="int" />
    <property name="required" value="false" />
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.SetJavaPropertiesHandler">
        <property name="propertyNames">
          <list>
            <value>org.apache.oodt.cas.catalog.connectionTimeout</value>
          </list>
        </property>
      </bean>
    </property>
  </bean>

	<bean id="query" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="q" />
		<property name="longOption" value="query" />
		<property name="description" value="CatalogService String Query" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="query" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_all" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_all" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_paged" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_paged" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_all" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_all" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_paged" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_paged" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="pageSize" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="ps" />
		<property name="longOption" value="pageSize" />
		<property name="description" value="Paged Query PageSize" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="integer" />
		<property name="type" value="int" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_paged" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_paged" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_paged" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_paged" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="pageNum" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="pn" />
		<property name="longOption" value="pageNum" />
		<property name="description" value="Paged Query PageNum" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="integer" />
		<property name="type" value="int" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_paged" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_paged" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_paged" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_paged" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="reducedTerms" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="rt" />
		<property name="longOption" value="reducedTerms" />
		<property name="description" value="Term filter for query results" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="list" />
		<property name="type" value="java.util.List" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_all" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_paged" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_all" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_paged" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="catalogRepositoryId" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="crid" />
		<property name="longOption" value="catalogRepositoryId" />
		<property name="description" value="CatalogRepository Spring Bean Id" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="bean id" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="load_catalog_repo" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="load_catalog_repo" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="catalogIds" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="cid" />
		<property name="longOption" value="catalogIds" />
		<property name="description" value="List of Catalog IDs to query" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="catalog ids" />
		<property name="type" value="java.util.List" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_all" p:relation="OPTIONAL" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_all" p:relation="OPTIONAL" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="query_paged" p:relation="OPTIONAL" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="reduced_query_paged" p:relation="OPTIONAL" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_all" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_all" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="query_paged" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="reduced_query_paged" />
          </list>
        </property>
      </bean>
    </property>
	</bean>

	<bean id="beanRepo" class="org.apache.oodt.cas.cli.option.AdvancedCmdLineOption">
		<property name="shortOption" value="br" />
		<property name="longOption" value="beanRepo" />
		<property name="description" value="Spring Bean XML File" />
		<property name="hasArgs" value="true" />
		<property name="argsDescription" value="file path" />
    <property name="requirementRules">
      <list>
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="load_catalogs" p:relation="REQUIRED" />
        <bean class="org.apache.oodt.cas.cli.option.require.ActionDependencyRule"
          p:actionName="load_catalog_repo" p:relation="REQUIRED" />
      </list>
    </property>
    <property name="handler">
      <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToActionHandler">
        <property name="applyToActions">
          <list>
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="load_catalogs" />
            <bean class="org.apache.oodt.cas.cli.option.handler.ApplyToAction"
              p:actionName="load_catalog_repo" />
          </list>
        </property>
      </bean>
    </property>
	</bean>
</beans>
