<?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 type 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;
&lt;p&gt;
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;
&lt;/p&gt;

      </documentation>
   </annotation>

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

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="quickFixProcessor" 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="quickFixProcessor">
      <complexType>
         <sequence>
            <element ref="enablement"/>
            <element ref="handledMarkerTypes" minOccurs="0" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  Unique identifier for the Quick Fix processor
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  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>
                  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 that can be handled by this processor
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

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

&lt;p&gt;
&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;
&lt;/p&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, 2006 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>
