<?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 class="org.apache.oodt.commons.spring.postprocessor.SetIdBeanPostProcessor"/>
    
    <!-- CAS-Catalog Cmd-Line-Options -->
    <bean id="action" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="a"/>
        <property name="longOption" value="action"/>
        <property name="description" value="The CatalogService Action Bean to run"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="bean id"/>
        <property name="required" value="true"/>
    </bean>
    
    <bean id="clientFactoryBeanId" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="cfb"/>
        <property name="longOption" value="clientFactoryBeanId"/>
        <property name="description" value="CatalogServiceClientFactory Bean Id"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="bean id"/>
        <property name="required" value="true"/>
    </bean>
    
    <bean id="query" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="q"/>
        <property name="longOption" value="query"/>
        <property name="description" value="CatalogService String Query"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="query"/>
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>query_all</value>
                            <value>reduced_query_all</value>
                            <value>query_paged</value>
                            <value>reduced_query_paged</value>                            
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="query_all"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_all"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="query_paged"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_paged"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="pageSize" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="ps"/>
        <property name="longOption" value="pageSize"/>
        <property name="description" value="Paged Query PageSize"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="integer"/>
        <property name="type" value="int"/>
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>query_paged</value>
                            <value>reduced_query_paged</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="query_paged"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_paged"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="pageNum" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="pn"/>
        <property name="longOption" value="pageNum"/>
        <property name="description" value="Paged Query PageNum"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="integer"/>
        <property name="type" value="int"/>
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>query_paged</value>
                            <value>reduced_query_paged</value>                            
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="query_paged"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_paged"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="reducedTerms" class="org.apache.oodt.commons.option.CmdLineOption">
        <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="optionArgName" value="list"/>
        <property name="type" value="java.util.List"/>        
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>reduced_query_all</value>
                            <value>reduced_query_paged</value>                            
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_all"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo"
                            p:bean-ref="reduced_query_paged"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="beanId" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="bid"/>
        <property name="longOption" value="beanId"/>
        <property name="description" value="Spring Bean Id"/>
        <property name="hasArgs" value="true"/>
        <property name="optionArgName" value="bean id"/>
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>load_catalog_repo</value>
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="load_catalog_repo"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="catalogIds" class="org.apache.oodt.commons.option.CmdLineOption">
        <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="optionArgName" value="catalog ids"/>
        <property name="type" value="java.util.List"/>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="query_all"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="reduced_query_all"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="query_paged"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="reduced_query_paged"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="beanRepo" class="org.apache.oodt.commons.option.CmdLineOption">
        <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="optionArgName" value="file path"/>
        <property name="requiredOptions">
            <list>
                <bean class="org.apache.oodt.commons.option.required.RequiredOption">
                    <property name="optionLongName" value="action"/>
                    <property name="requireAllValues" value="false"/>
                    <property name="optionValues">
                        <list>
                            <value>load_catalogs</value>
                            <value>load_catalog_repo</value>                            
                        </list>
                    </property>
                </bean>
            </list>
        </property>
        <property name="handler">
            <bean class="org.apache.oodt.commons.option.handler.CmdLineOptionBeanHandler">
                <property name="applyToBeans">
                    <list>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="load_catalogs"/>
                        <bean class="org.apache.oodt.commons.option.handler.BeanInfo" p:bean-ref="load_catalog_repo"/>
                    </list>
                </property>
            </bean>
        </property>
    </bean>
    
    <bean id="printSupportedActions" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="psa"/>
        <property name="longOption" value="printSupportedActions"/>
        <property name="description" value="Prints a list and description of all supported CatalogServiceServerActions"/>
        <property name="hasArgs" value="false"/>
        <property name="required" value="false"/>
        <property name="performAndQuit" value="true"/>
        <property name="handler">
            <bean class="org.apache.oodt.cas.catalog.server.option.PrintSupportedActionsHandler">
                <property name="beanRepo" value="/${catalog.home}/policy/catserv-client-config.xml"/>
            </bean>
        </property>
    </bean>
    
    <bean id="printSupportedClients" class="org.apache.oodt.commons.option.CmdLineOption">
        <property name="shortOption" value="psc"/>
        <property name="longOption" value="printSupportedClients"/>
        <property name="description" value="Prints a list and description of all supported CatalogServiceClientFactories"/>
        <property name="hasArgs" value="false"/>
        <property name="required" value="false"/>
        <property name="performAndQuit" value="true"/>
        <property name="handler">
            <bean class="org.apache.oodt.cas.catalog.server.option.PrintSupportedClientsHandler">
                <property name="beanRepo" value="/${catalog.home}/policy/catserv-client-config.xml"/>
            </bean>
        </property>
    </bean>
    
</beans>


