<?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="quickFixProcessors" name="Quick Fix Processor"/>
      </appInfo>
      <documentation>
         This extension point allows to add a Quick Fix processor to offer new Quick Fixes on Java problems.
&lt;p&gt;
Since 3.2, an extension can specify which problem marker types it can handle. It will only get problems of these types to process.
If no handled marker types are specified, the processor will only get problems of types org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem and org.eclipse.jdt.core.task (compatible to the behaviour prior to 3.2).
&lt;/p&gt;

This extension point supports the &lt;code&gt;&amp;lt;enablement&amp;gt;&lt;/code&gt; element.
&lt;!-- see org.eclipse.jdt.internal.ui.text.correction.ContributedProcessorDescriptor#matches(ICompilationUnit): --&gt;
The default variable is the containing &lt;code&gt;org.eclipse.jdt.core.ICompilationUnit&lt;/code&gt;.
&lt;br&gt;Defined variables for &lt;code&gt;&amp;lt;with&amp;gt;&lt;/code&gt; expressions are:
&lt;ul&gt;
&lt;li&gt;&quot;compilationUnit&quot;: type &lt;code&gt;org.eclipse.jdt.core.ICompilationUnit&lt;/code&gt;; the compilation unit the quick assist is applied on (same as the default variable)&lt;/li&gt;
&lt;li&gt;&quot;projectNatures&quot;: type &lt;code&gt;java.util.Collection&amp;lt;String&amp;gt;&lt;/code&gt;; all project natures of the current project&lt;/li&gt;
&lt;li&gt;&quot;sourceLevel&quot;: type &lt;code&gt;java.lang.String&lt;/code&gt;; the source compliance level of the current project&lt;/li&gt;
&lt;/ul&gt;
      </documentation>
   </annotation>

   <include schemaLocation="schema://org.eclipse.core.expressions/schema/expressionLanguage.exsd"/>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="quickFixProcessor" minOccurs="1" 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="quickFixProcessor">
      <complexType>
         <sequence>
            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
            <element ref="handledMarkerTypes" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  a unique identifier for the Quick Fix processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  a localized name of the Quick Fix processor
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the name of the class that implements this Quick Fix processor. The
class must be public and implement
&lt;samp&gt;org.eclipse.jdt.ui.text.java.IQuickFixProcessor&lt;/samp&gt;
with a public 0-argument constructor.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jdt.ui.text.java.IQuickFixProcessor"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="requiredSourceLevel" type="string">
            <annotation>
               <documentation>
                  an optional attribute to specify the minimal source compliance this processor requires
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="handledMarkerTypes">
      <annotation>
         <documentation>
            Specifies the marker types of the problems this quick fix processor can handle.
If no handled marker type are specified, the processor will get problems of types org.eclipse.jdt.core.problem, org.eclipse.jdt.core.buildpath_problem and org.eclipse.jdt.core.task.
         </documentation>
      </annotation>
      <complexType>
         <sequence>
            <element ref="markerType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
      </complexType>
   </element>

   <element name="markerType">
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  the marker type id of the marker type that can be handled by this processor. The processor will not handle marker subtypes.
               </documentation>
               <appInfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.markers/@id"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The following is an example of a Quick Fix processor contribution:

&lt;pre&gt;
 &lt;extension point=&quot;org.eclipse.jdt.ui.quickFixProcessors&quot;&gt;
  &lt;quickFixProcessor
   id=&quot;AdvancedQuickFixProcessor&quot;
   name=&quot;Advanced Quick Fix Processor&quot;
   requiredSourceLevel=&quot;1.5&quot;
   class=&quot;com.example.AdvancedQuickFixProcessor&quot;&gt;
   &lt;handledMarkerTypes&gt;
      &lt;markerType id=&quot;org.eclipse.myplugin.audits&quot;/&gt;
   &lt;/handledMarkerTypes&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;/quickFixProcessor&gt;
 &lt;/extension&gt;
&lt;/pre&gt;
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         Extension point since 3.0. Element &lt;code&gt;handledMarkerTypes&lt;/code&gt; since 3.2.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         The contributed class must implement &lt;code&gt;org.eclipse.jdt.ui.text.java.IQuickFixProcessor&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, 2013 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>
