<p>This extension point is used to add a new editing capability to the UIMA CDE for an additional kind of UIMA XML descriptor (Resource Specifer). Developers can extend the editor to edit a new kind of Resource Specifier by using this extension point to extend the CDE's editing capability. </p> <p>The extension must implement two interfaces: <ol><li><code>org.apache.uima.taeconfigurator.editors.point.IUimaEditorExtension</code> and</li> <li><code>org.apache.uima.taeconfigurator.editors.point.IUimaMultiPageEditor</code>.</li> </ol></p> <p>When the CDE is instantiated, it will load the information in the XML spec for all contributors to the extension point. When an attempt is made to edit a top-most element which the CDE doesn't know how to handle, this XML info is scanned to see if some contributor can handle this. All this is done without loading any classes. If it finds one, it loads the class and calls the <code>init</code> method of the <code>IUimaEditorExtension</code> interface; this allows all extensions to do whatever initialization they may need to do. For instance, the extension could register a factory class for the new descriptor's type (see below) with UIMA's general ResourceSpecifier support. </p> <p>If the parser can't parse the descriptor, this same scan code is used to see if some editor can possibly contribute a parser for the particular top-level element. If so, the <code>init</code> method is called, as above, in the hopes that the editor will cause some additional parser to get "registered", and then the parsing is retried. </p> <p> The <code>IUimaMultiPageEditor</code> interface is used by CDE to redirect the editing functions to the external editor. </p> <p>Note: To add a new kind of Resource Specifier to UIMA, you can register a new factory class for the new descriptor's type (by using the <code>addMapping(String, String)</code> method of the <code>org.apache.uima.ResourceSpecifierFactory</code> factory class) </p> a fully qualified identifier of the target extension point an optional identifier of the extension instance an optional name of the extension instance a translatable name that will be used in the UI for this editor a unique name that will be used to identify this editor the name of a class that implements <code>org.apache.uima.taeconfigurator.editors.point.IUimaEditorExtension</code> and <code>org.apache.uima.taeconfigurator.editors.point.IUimaMultiPageEditor</code>. The attributes One or more handlesElement elements name the kinds of XML top-level elements that a particular editor will edit. The CDE scans these to determine which editor to load. The name of the top-level element; cannot be one of the elements the CDE already edits An interface that represents the result of parsing this element 2.2.1 The following is an example of an external editor extension definition: <p> <pre> <extension point="org.apache.uima.desceditor.externalEditor"> <editor class="org.apache.uima.dde.internal.DeploymentDescriptorEditor" id="org.apache.uima.dde" name="Deployment Descriptor Editor"> <handlesElement class="org.apache.uima.aae.deployment.AEService" elementName="analysisEngineDeploymentDescription" internalParseClass="org.apache.uima.aae.deployment.impl.AEDeploymentDescription_Impl"/> </editor> </extension> </pre> </p> The contributed class must implement <code>org.apache.uima.taeconfigurator.editors.point.IUimaEditorExtension</code> and <code>org.apache.uima.taeconfigurator.editors.point.IUimaMultiPageEditor</code> 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.