<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.ltk.core.refactoring">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.ltk.core.refactoring" id="moveParticipants" name="Move Participants"/>
      </appInfo>
      <documentation>
         This extension point is used to define refactoring move participants. The reader of the expression provides the following predefined variables which can be referenced via the &amp;lt;with variable=&quot;...&quot;&amp;gt; expression element:

&lt;ul&gt;
  &lt;li&gt;Object element: the element to be moved&lt;/li&gt;
  &lt;li&gt;List&amp;lt;String&amp;gt; affectedNatures: a list containing the natures of the projects affected 
      by the refactoring&lt;/li&gt;
  &lt;li&gt;String processorId: the id of the refactoring processor that will own the participant.
&lt;/ul&gt;

The default variable used during expression evaluation is bound to the element variable.
      </documentation>
   </annotation>

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

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="moveParticipant" 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="moveParticipant">
      <complexType>
         <all>
            <element ref="enablement"/>
         </all>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  unique identifier for the move participant.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  a human reabable name of the move participant
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  the name of the class that provides the participant implementation.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.ltk.core.refactoring.participants.MoveParticipant"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         The example below defines a type move participant. The participant is enabled if one of the project affected by the refactoring has a Java nature and when the type to be moved is a JUnit test.

&lt;pre&gt;
&lt;moveParticipant
    id=&quot;org.eclipse.jdt.junit.moveTypeParticipant&quot;
    name=&quot;%MoveTypeParticipant.name&quot; 
    class=&quot;org.eclipse.jdt.internal.junit.ui.TypeMoveParticipant&quot;&gt;
    &lt;enablement&gt;
      &lt;with variable=&quot;affectedNatures&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;with variable=&quot;element&quot;&gt;
        &lt;instanceof value=&quot;org.eclipse.jdt.core.IType&quot;/&gt;
        &lt;test property=&quot;org.eclipse.jdt.junit.isTest&quot;/&gt;
      &lt;/with&gt;
    &lt;/enablement&gt;
&lt;/moveParticipant&gt;
&lt;/pre&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 extend &lt;code&gt;org.eclipse.ltk.core.refactoring.participants.MoveParticipant&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>
