<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
 <extension-point id="org.yakindu.sct.generator.core.generator" name="SCT Generator" schema="schema/generator.exsd"/>
  <extension-point id="org.yakindu.sct.generator.core.featuretypes" name="GenModel Feature Types" schema="schema/featuretypes.exsd"/>
  <extension-point id="org.yakindu.sct.generator.core.extensions" name="File Extension Mapping" schema="schema/extensions.exsd"/>
 <extension
         point="org.yakindu.sct.generator.core.featuretypes">
      <FeatureLibrary
            library_id="org.yakindu.generator.core.features"
            defaultProvider="org.yakindu.sct.generator.core.features.impl.CoreLibraryDefaultFeatureValueProvider"
            uri="platform:/plugin/org.yakindu.sct.generator.core/library/CoreFeatureTypeLibrary.xmi">
      </FeatureLibrary>
      <FeatureLibrary
            library_id="org.yakindu.generator.core.features.xpand"
            defaultProvider="org.yakindu.sct.generator.core.features.impl.XpandLibraryDefaultFeatureValueProvider"
            uri="platform:/plugin/org.yakindu.sct.generator.core/library/XpandFeatureTypeLibrary.xmi">
      </FeatureLibrary>
      <FeatureLibrary
            library_id="org.yakindu.generator.core.features.generic"
            defaultProvider="org.yakindu.sct.generator.core.features.impl.GenericJavaLibraryDefaultValueProvider"
            uri="platform:/plugin/org.yakindu.sct.generator.core/library/GenericJavaFeatureTypeLibrary.xmi">
   	  </FeatureLibrary>   	  
   	  <FeatureLibrary
            library_id="org.yakindu.generator.core.features.sctbase"
            defaultProvider="org.yakindu.sct.generator.core.features.impl.SCTBaseLibaryDefaultFeatureValueProvider"
            uri="platform:/plugin/org.yakindu.sct.generator.core/library/SCTBaseFeatureLibrary.xmi">
   	  </FeatureLibrary>
 </extension>
 <extension
       point="org.yakindu.sct.generator.core.generator">
    <SCTGenerator
          class="org.yakindu.sct.generator.core.impl.GenericXPandCodeGenerator"
          contentType="statechart"
          description="Generate Code using Xpand Templates"
          elementRefType="org.yakindu.sct.model.sgraph.Statechart"
          icon="icons/sct.png"
          id="yakindu::xpand"
          name="Custom Xpand-based Generator">
       <FeatureLibrary
             library_id="org.yakindu.generator.core.features">
       </FeatureLibrary>
       <FeatureLibrary
             library_id="org.yakindu.generator.core.features.xpand">
       </FeatureLibrary>
    </SCTGenerator>
 </extension>
    <extension
         point="org.yakindu.sct.generator.core.extensions">
      <ExtensionGeneratorMapping
            fileExtension="sct"
            generatorId="yakindu::xpand">
      </ExtensionGeneratorMapping>
   </extension>
 
 <extension
       point="org.yakindu.sct.generator.core.generator">
   <SCTGenerator
         class="org.yakindu.sct.generator.core.impl.GenericJavaBasedGenerator"
         contentType="statechart"
         description="Generate Code using Xpand Templates"
         elementRefType="org.yakindu.sct.model.sgraph.Statechart"
         icon="icons/sct.png"
         id="yakindu::generic"
         name="Custom Xtend2/Java-based Generator">
      <FeatureLibrary
            library_id="org.yakindu.generator.core.features">
      </FeatureLibrary>
      <FeatureLibrary
            library_id="org.yakindu.generator.core.features.generic">
      </FeatureLibrary>
    </SCTGenerator>
 </extension>
    <extension
         point="org.yakindu.sct.generator.core.extensions">
      <ExtensionGeneratorMapping
            fileExtension="sct"
            generatorId="yakindu::generic">
      </ExtensionGeneratorMapping>
   </extension>
 
  <extension
         id="org.yakindu.sct.builder.SCTBuilder"
         name="YAKINDU SCT Builder"
         point="org.eclipse.core.resources.builders">
      <builder hasNature="true">
         <run  class="org.yakindu.sct.builder.SCTBuilder">
         </run>
      </builder>
   </extension>
   <extension
         point="org.eclipse.core.resources.natures"
         id="org.yakindu.sct.builder.SCTNature"
         name="YAKINDU SCT Project Nature">
      <runtime>
         <run class="org.yakindu.sct.builder.nature.SCTNature">
         </run>
      </runtime>
      <builder
            id="org.yakindu.sct.builder.SCTBuilder">
      </builder>
   </extension>
   <extension
         point="org.eclipse.ui.popupMenus">
      <objectContribution
            adaptable="true"
            objectClass="org.eclipse.core.resources.IProject"
            nameFilter="*"
            id="org.yakindu.sct.builder.addNature">
         <action
               label="Add YAKINDU SCT Nature"
               class="org.yakindu.sct.builder.nature.ToggleSCTNatureAction"
               menubarPath="org.eclipse.ui.projectConfigure/additions"
               enablesFor="+"
               id="org.yakindu.sct.builder.addRemoveNatureAction">
         </action>
           <visibility>
         	<not>
	            <objectState
    	              name="nature"
        	          value="org.yakindu.sct.builder.SCTNature">
            	</objectState>
            </not>
         </visibility>
      </objectContribution>
      <objectContribution
            adaptable="true"
            objectClass="org.eclipse.core.resources.IProject"
            nameFilter="*"
            id="org.yakindu.sct.builder.removeNature">
         <action
               label="Remove YAKINDU SCT Nature"
               class="org.yakindu.sct.builder.nature.ToggleSCTNatureAction"
               menubarPath="org.eclipse.ui.projectConfigure/additions"
               enablesFor="+"
               id="org.yakindu.sct.builder.addRemoveNatureAction">
         </action>
           <visibility>
	            <objectState
    	              name="nature"
        	          value="org.yakindu.sct.builder.SCTNature">
            	</objectState>
         </visibility>
      </objectContribution>
   </extension>
</plugin>
