<?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.
 -->

<analysisEngineDescription
 xmlns="http://uima.apache.org/resourceSpecifier">
 <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
 <primitive>true</primitive>
 <annotatorImplementationName>
  org.apache.uima.cas.test.TestAnnotator
 </annotatorImplementationName>
 <analysisEngineMetaData>
  <name>aeDescriptor</name>
  <description></description>
  <version>1.0</version>
  <vendor></vendor>
  <configurationParameters />
  <configurationParameterSettings />
  <typeSystemDescription>
   <imports>
    <import location="casTestCaseTypesystem.xml" />
   </imports>
  </typeSystemDescription>
  <typePriorities>
   <priorityList>
    <type>Token</type>
    <type>Sentence</type>
    <type>uima.tcas.Annotation</type>
   </priorityList>
  </typePriorities>
  <fsIndexCollection>
   <fsIndexes>
    <fsIndexDescription>
     <label>Annotation Set Index</label>
     <typeName>uima.tcas.Annotation</typeName>
     <kind>set</kind>
     <keys>
      <fsIndexKey>
       <featureName>begin</featureName>
       <comparator>standard</comparator>
      </fsIndexKey>
      <fsIndexKey>
       <featureName>end</featureName>
       <comparator>reverse</comparator>
      </fsIndexKey>
     </keys>
    </fsIndexDescription>
    <fsIndexDescription>
     <label>Annotation Bag Index</label>
     <typeName>uima.tcas.Annotation</typeName>
     <kind>bag</kind>
     <keys>
      <fsIndexKey>
       <featureName>begin</featureName>
       <comparator>standard</comparator>
      </fsIndexKey>
      <fsIndexKey>
       <featureName>end</featureName>
       <comparator>reverse</comparator>
      </fsIndexKey>
     </keys>
    </fsIndexDescription>
    <fsIndexDescription>
     <label>TypeOrderIndex</label>
     <typeName>uima.tcas.Annotation</typeName>
     <kind>sorted</kind>
     <keys>
      <fsIndexKey>
       <featureName>begin</featureName>
       <comparator>standard</comparator>
      </fsIndexKey>
      <fsIndexKey>
       <featureName>end</featureName>
       <comparator>reverse</comparator>
      </fsIndexKey>
      <fsIndexKey>
       <typePriority />
      </fsIndexKey>
     </keys>
    </fsIndexDescription>
   </fsIndexes>
  </fsIndexCollection>
  <capabilities>
   <capability>
    <inputs />
    <outputs />
    <languagesSupported />
   </capability>
  </capabilities>
  <operationalProperties>
   <modifiesCas>true</modifiesCas>
   <multipleDeploymentAllowed>true</multipleDeploymentAllowed>
   <outputsNewCASes>false</outputsNewCASes>
  </operationalProperties>
 </analysisEngineMetaData>
 <resourceManagerConfiguration />
</analysisEngineDescription>
