<?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.
-->
<!--                                                               
    Descriptor for testing the editing and copying of an aggregate.
    
    Note: Blank lines outside comments in this first section are not preserved
-->
<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">

  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
  <primitive>false</primitive>

  <!-- Test that order of declarations is preserved when re-written  -->
  <delegateAnalysisEngineSpecifiers>
    <delegateAnalysisEngine key="D">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="C">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="B">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="A">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="F">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
    <delegateAnalysisEngine key="E">
      <import location="TestPrimitiveTae2.xml"/>
    </delegateAnalysisEngine>
  </delegateAnalysisEngineSpecifiers>
  <!-- The above declaration order should be preserved when the UIMA APIs are used to parse and -->
  <!-- serialize back to disk  -->
  <analysisEngineMetaData>
    <name>AggregateWithManyDelegates</name>
    <version>1.0</version>
    <configurationParameters searchStrategy="language_fallback">
      <configurationParameter>              <!-- First parameter -->
        <name>StringParam</name>
        <description>This is a string parameter</description>
        <type>String</type>
        <multiValued>false</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>A/StringParam</parameter>
          <parameter>B/StringParam</parameter>
        </overrides>
      </configurationParameter>
      <configurationParameter>
        <name>IntArrayParam</name>
        <description>Array of integers</description>
        <type>Integer</type>
        <multiValued>true</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>A/IntArrayParam</parameter>
        </overrides>
      </configurationParameter>
      <configurationParameter>
        <name>IntArrayParam1</name>
        <description>Array of integers</description>
        <type>Integer</type>
        <multiValued>true</multiValued>
        <mandatory>false</mandatory>
        <overrides>
          <parameter>B/IntArrayParam</parameter>
        </overrides>
      </configurationParameter>
    </configurationParameters>

    <!-- Start of parameter settings -->

    <configurationParameterSettings>
      <nameValuePair>
        <name>StringParam</name>
        <value>
          <string>this is a string</string>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>IntArrayParam</name>
        <value>
          <array>           <!-- an array of 2 integers -->
            <integer>1</integer>
            <integer>2</integer>
          </array>
        </value>
      </nameValuePair>
      <nameValuePair>
        <name>IntArrayParam1</name>
        <value>
          <array>
            <integer>3</integer>
            <integer>4</integer>
          </array>
        </value>
      </nameValuePair>
    </configurationParameterSettings>
    <flowConstraints>
      <fixedFlow>
        <node>A</node>
        <node>B</node>
        <node>C</node>
        <node>D</node>
        <node>E</node>
        <node>F</node>
      </fixedFlow>
    </flowConstraints>
    <fsIndexCollection/>
    <capabilities>
      <capability>
        <inputs/>
        <outputs/>
        <languagesSupported/>
      </capability>
    </capabilities>
    <operationalProperties>
      <modifiesCas>true</modifiesCas>
      <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
      <outputsNewCASes>false</outputsNewCASes>
    </operationalProperties>
  </analysisEngineMetaData>
  <resourceManagerConfiguration/>
</analysisEngineDescription>
