<?xml version='1.0' encoding='UTF-8'?>
<schema targetNamespace="org.eclipse.statet.autonature" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appinfo>
         <meta.schema id="AutoConfigurations"
               plugin="org.eclipse.statet.eutils.autonature"
               name="Auto Project Configurations"/>
      </appinfo>
      <documentation>
         This extension-point allows to define project configurations automatically performed
         on the specified events.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appinfo>
            <meta.element />
         </appinfo>
      </annotation>
      <complexType>
         <choice minOccurs="1" maxOccurs="unbounded">
            <element ref="onFileContent"/>
         </choice>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="onFileContent">
      <annotation>
         <documentation>
            Performed if a file with the specified content type is changed.
         </documentation>
      </annotation>
      <complexType>
         <choice>
            <element ref="ensureProjectNature" minOccurs="0" maxOccurs="unbounded"/>
            <element ref="runProjectConfigurator" minOccurs="0" maxOccurs="unbounded"/>
         </choice>
         <attribute name="contentTypeId" type="string" use="required">
            <annotation>
               <documentation>
                  The id of the content type to handle.
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.contenttype.contentTypes/content-type/@id"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="enable" type="boolean">
            <annotation>
               <documentation>
                  If the it should be enabled by default.
               </documentation>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="ensureProjectNature">
      <annotation>
         <documentation>
            Installs the specified project nature, if it is missing.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="natureId" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.natures/@id"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="runProjectConfigurator">
      <annotation>
         <documentation>
            Asks the specified project configurator whether/to configure the project.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="label" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute translatable="true"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute kind="java" basedOn=":org.eclipse.statet.eutils.autonature.IProjectConfigurator"/>
               </appinfo>
            </annotation>
         </attribute>
         <attribute name="natureId" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appinfo>
                  <meta.attribute kind="identifier" basedOn="org.eclipse.core.resources.natures/@id"/>
               </appinfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appinfo>
         <meta.section type="since"/>
      </appinfo>
      <documentation>
         0.1
      </documentation>
   </annotation>

   <annotation>
      <appinfo>
         <meta.section type="copyright"/>
      </appinfo>
      <documentation>
         Copyright (c) 2014, 2020 Stephan Wahlbrink and others.

This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
which is available at https://www.apache.org/licenses/LICENSE-2.0.

SPDX-License-Identifier: EPL-2.0 OR Apache-2.0

Contributors:
    Stephan Wahlbrink &lt;sw@wahlbrink.eu&gt; - initial API and implementation
      </documentation>
   </annotation>

</schema>
