<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jdt.ui">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jdt.ui" id="quickAssistProcessors" name="Quick Assist Processor"/>
      </appInfo>
      <documentation>
         This extension point allows to add a Quick Assist processor to offer new Quick Assists in the Java editor.
This extension point supports the &lt;code&gt;enablement&lt;/code&gt; tag. Properties to test on are:
&lt;dl&gt;
&lt;li&gt;compilationUnit: type ICompilationUnit; the compilation unit the quick assist is applied on&lt;/li&gt;

&lt;li&gt;projectNatures: type Collection; all project natures of the current project&lt;/li&gt;
&lt;li&gt;sourceLevel: type String; the source compliance of the current project&lt;/li&gt;
&lt;/dl&gt;
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="quickAssistProcessor" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  a fully qualified identifier of the target extension point
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  an optional identifier of the extension instance
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  an optional name of the extension instance
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="quickAssistProcessor">
      <complexType>
         <sequence>
            <element ref="enablement"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  Unique identifier for the Quick Assist processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  Localized name of the Quick Assist processor.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  the name of the class that implements this Quick Assist processor. The
class must be public and implement
&lt;samp&gt;org.eclipse.jdt.ui.text.java.IQuickAssistProcessor&lt;/samp&gt;
with a public 0-argument constructor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.ui.text.java.IQuickAssistProcessor"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="requiredSourceLevel" type="string">
            <annotation>
               <documentation>
                  Optional attribute to specify the minimal source compliance this processor requires.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a Quick Assist processor contribution:

&lt;p&gt;
&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.jdt.ui.quickAssistProcessors&quot;&gt;
  &lt;quickAssistProcessor
   id=&quot;AdvancedQuickAssistProcessor&quot;
   name=&quot;Advanced Quick Assist Processor&quot;
   requiredSourceLevel=&quot;1.5&quot;  
   class=&quot;com.example.AdvancedQuickAssistProcessor&quot;&gt;
  &lt;/quickAssistProcessor&gt;
   &lt;enablement&gt;
      &lt;with variable=&quot;projectNatures&quot;&gt;
         &lt;iterate operator=&quot;or&quot;&gt;
            &lt;equals value=&quot;org.eclipse.jdt.core.javanature&quot;/&gt;
         &lt;/iterate&gt;
      &lt;/with&gt;
   &lt;/enablement&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
&lt;/p&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         3.0
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The contributed class must implement &lt;code&gt;org.eclipse.jdt.ui.text.java.IQuickAssistProcessor&lt;/code&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2001, 2004 IBM Corporation and others.&lt;br&gt;
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at &lt;a href=&quot;http://www.eclipse.org/legal/epl-v10.html&quot;&gt;http://www.eclipse.org/legal/epl-v10.html&lt;/a&gt;
      </documentation>
   </annotation>

</schema>
