Ver código fonte

Implemented FeatureLibrary Default Providers

holger.willebrandt@gmail.com 13 anos atrás
pai
commit
125ad5fbb8
18 arquivos alterados com 257 adições e 154 exclusões
  1. 2 2
      plugins/org.yakindu.sct.generator.c/library/FeatureTypeLibrary.xmi
  2. 21 2
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CDefaultFeatureValueProvider.java
  3. 20 0
      plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CFeatureConstants.java
  4. 7 7
      plugins/org.yakindu.sct.generator.core/library/FeatureTypeLibrary.xmi
  5. 1 0
      plugins/org.yakindu.sct.generator.core/plugin.xml
  6. 116 116
      plugins/org.yakindu.sct.generator.core/schema/featuretypes.exsd
  7. 1 1
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/GeneratorExtensions.java
  8. 3 2
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/LibraryExtensions.java
  9. 16 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/AbstractDefaultFeatureValueProvider.java
  10. 1 1
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/ICoreFeatureConstants.java
  11. 45 0
      plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/CoreLibraryDefaultFeatureValueProvider.java
  12. 2 4
      plugins/org.yakindu.sct.generator.cpp/library/FeatureTypeLibrary.xmi
  13. 5 4
      plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java
  14. 2 2
      plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/scoping/SGenGlobalScopeProvider.java
  15. 7 7
      plugins/org.yakindu.sct.generator.java/library/FeatureTypeLibrary.xmi
  16. 1 0
      plugins/org.yakindu.sct.generator.java/plugin.xml
  17. 2 0
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/IJavaFeatureConstants.java
  18. 5 6
      plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/JavaFeatureValueProvider.java

+ 2 - 2
plugins/org.yakindu.sct.generator.c/library/FeatureTypeLibrary.xmi

@@ -1,2 +1,2 @@
-<?xml version="1.0" encoding="ASCII"?>
-<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore"/>
+<?xml version="1.0" encoding="ASCII"?>
+<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore" name="C Generator"/>

+ 21 - 2
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CDefaultFeatureValueProvider.java

@@ -1,3 +1,13 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
 package org.yakindu.sct.generator.c.features;
 
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
@@ -5,6 +15,11 @@ import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 import org.yakindu.sct.model.sgraph.Statechart;
 
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
 public class CDefaultFeatureValueProvider extends
 		AbstractDefaultFeatureValueProvider {
 
@@ -12,13 +27,17 @@ public class CDefaultFeatureValueProvider extends
 	}
 
 	public boolean isProviderFor(FeatureTypeLibrary library) {
-		// TODO
-		return false;
+		return CFeatureConstants.LIBRARY_NAME.equals(library.getName());
 	}
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
 			Statechart statechart) {
+		String parameterName = parameterValue.getParameter().getName();
+		// TODO
+		// if (CFeatureConstants.A_PARAMETER.equals(parameterName)){
+		// ...
+		// }
 	}
 
 }

+ 20 - 0
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/features/CFeatureConstants.java

@@ -0,0 +1,20 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.generator.c.features;
+
+/**
+ * 
+ * @author holger willebrandt - Initial contribution and API
+ * 
+ */
+public interface CFeatureConstants {
+	public static final String LIBRARY_NAME = "C Generator";
+}

+ 7 - 7
plugins/org.yakindu.sct.generator.core/library/FeatureTypeLibrary.xmi

@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="ASCII"?>
-<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore">
-  <types name="OutletFeature">
-    <parameters name="targetProject"/>
-    <parameters name="targetFolder"/>
-  </types>
-</sgen:FeatureTypeLibrary>
+<?xml version="1.0" encoding="ASCII"?>
+<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore" name="Core">
+  <types name="OutletFeature">
+    <parameters name="targetProject"/>
+    <parameters name="targetFolder"/>
+  </types>
+</sgen:FeatureTypeLibrary>

+ 1 - 0
plugins/org.yakindu.sct.generator.core/plugin.xml

@@ -6,6 +6,7 @@
  <extension
          point="org.yakindu.sct.generator.core.featuretypes">
       <FeatureLibrary
+            defaultProvider="org.yakindu.sct.generator.core.features.impl.CoreLibraryDefaultFeatureValueProvider"
             generatorId="ALL"
             uri="platform:/plugin/org.yakindu.sct.generator.core/library/FeatureTypeLibrary.xmi">
       </FeatureLibrary>

+ 116 - 116
plugins/org.yakindu.sct.generator.core/schema/featuretypes.exsd

@@ -1,116 +1,116 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.yakindu.sct.generator.genmodel" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.yakindu.sct.generator.genmodel" id="org.yakindu.sct.generator.genmodel.featuretypes" name="GenModel Feature Types"/>
-      </appinfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence minOccurs="1" maxOccurs="unbounded">
-            <element ref="FeatureLibrary"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="FeatureLibrary">
-      <complexType>
-         <attribute name="uri" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="generatorId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="defaultProvider" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="java" basedOn="org.yakindu.sct.generator.genmodel.extensions.AbstractDefaultFeatureValueProvider:"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="since"/>
-      </appinfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="examples"/>
-      </appinfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="apiinfo"/>
-      </appinfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appinfo>
-         <meta.section type="implementation"/>
-      </appinfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-
-</schema>
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.yakindu.sct.generator.genmodel" xmlns="http://www.w3.org/2001/XMLSchema">
+<annotation>
+      <appinfo>
+         <meta.schema plugin="org.yakindu.sct.generator.genmodel" id="org.yakindu.sct.generator.genmodel.featuretypes" name="GenModel Feature Types"/>
+      </appinfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <annotation>
+         <appinfo>
+            <meta.element />
+         </appinfo>
+      </annotation>
+      <complexType>
+         <sequence minOccurs="1" maxOccurs="unbounded">
+            <element ref="FeatureLibrary"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute translatable="true"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="FeatureLibrary">
+      <complexType>
+         <attribute name="uri" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="generatorId" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="defaultProvider" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appinfo>
+                  <meta.attribute kind="java" basedOn="org.yakindu.sct.generator.genmodel.extensions.AbstractDefaultFeatureValueProvider:"/>
+               </appinfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="since"/>
+      </appinfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="examples"/>
+      </appinfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="apiinfo"/>
+      </appinfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appinfo>
+         <meta.section type="implementation"/>
+      </appinfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+
+</schema>

+ 1 - 1
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/GeneratorExtensions.java

@@ -28,7 +28,7 @@ import com.google.common.collect.Iterables;
  */
 public class GeneratorExtensions {
 
-	private static final String EXTENSION_POINT_ID = "org.yakindu.sct.generator.core";
+	private static final String EXTENSION_POINT_ID = "org.yakindu.sct.generator.core.generator";
 	private static final String ATTRIBUTE_CLASS = "class";
 	private static final String ATTRIBUTE_ID = "id";
 	private static final String ATTRIBUTE_NAME = "name";

+ 3 - 2
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/LibraryExtensions.java

@@ -1,4 +1,4 @@
-package org.yakindu.sct.generator.core.features;
+package org.yakindu.sct.generator.core.extensions;
 
 import static com.google.common.collect.Iterables.transform;
 import static com.google.common.collect.Lists.newArrayList;
@@ -7,6 +7,7 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.emf.common.util.URI;
+import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider;
 
 import com.google.common.base.Function;
 import com.google.common.base.Predicate;
@@ -19,7 +20,7 @@ import com.google.common.collect.Iterables;
  */
 public class LibraryExtensions {
 
-	private static final String EXTENSION_POINT_ID = "org.yakindu.sct.generator.genmodel.featuretypes";
+	private static final String EXTENSION_POINT_ID = "org.yakindu.sct.generator.core.featuretypes";
 	private static final String ATTRIBUTE_URI = "uri";
 	private static final String ATTRIBUTE_GENERATOR_ID = "generatorId";
 	private static final String DEFAULT_PROVIDER = "defaultProvider";

+ 16 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/AbstractDefaultFeatureValueProvider.java

@@ -1,5 +1,8 @@
 package org.yakindu.sct.generator.core.features;
 
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.Path;
 import org.eclipse.emf.common.util.EList;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureParameter;
@@ -48,4 +51,17 @@ public abstract class AbstractDefaultFeatureValueProvider implements
 		return result;
 	}
 
+	/**
+	 * get the {@link IProject} containing the given {@link Statechart}
+	 * 
+	 */
+	protected IProject getProject(Statechart statechart) {
+		return ResourcesPlugin
+				.getWorkspace()
+				.getRoot()
+				.getFile(
+						new Path(statechart.eResource().getURI()
+								.toPlatformString(true))).getProject();
+	}
+
 }

+ 1 - 1
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/ICoreFeatureConstants.java

@@ -17,7 +17,7 @@ package org.yakindu.sct.generator.core.features;
  * 
  */
 public interface ICoreFeatureConstants {
-
+	public static final String LIBRARY_NAME = "Core";
 	public static final String OUTLET_FEATURE = "OutletFeature";
 	public static final String OUTLET_FEATURE_TARGET_PROJECT = "targetProject";
 	public static final String OUTLET_FEATURE_TARGET_FOLDER = "targetFolder";

+ 45 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/CoreLibraryDefaultFeatureValueProvider.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright (c) 2011 committers of YAKINDU and others.
+ * 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
+ * http://www.eclipse.org/legal/epl-v10.html
+ * Contributors:
+ * 	committers of YAKINDU - initial API and implementation
+ * 
+ */
+package org.yakindu.sct.generator.core.features.impl;
+
+import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LIBRARY_NAME;
+import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_FOLDER;
+import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT;
+
+import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
+import org.yakindu.sct.model.sgen.FeatureParameterValue;
+import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+/**
+ * 
+ * @author holger willebrandt - Initial contribution and API
+ */
+public class CoreLibraryDefaultFeatureValueProvider extends
+		AbstractDefaultFeatureValueProvider {
+
+
+	public boolean isProviderFor(FeatureTypeLibrary library) {
+		return LIBRARY_NAME.equals(library.getName());
+	}
+
+	@Override
+	protected void setDefaultValue(FeatureParameterValue parameterValue,
+			Statechart statechart) {
+		String parameterName = parameterValue.getParameter().getName();
+		if (OUTLET_FEATURE_TARGET_FOLDER.equals(parameterName)) {
+			parameterValue.setValue("src-gen");
+		} else if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName)) {
+			parameterValue.setValue(getProject(statechart).getName());
+		}
+	}
+
+}

+ 2 - 4
plugins/org.yakindu.sct.generator.cpp/library/FeatureTypeLibrary.xmi

@@ -1,4 +1,2 @@
-<?xml version="1.0" encoding="ASCII"?>
-<sgen:FeatureTypeLibrary xmi:version="2.0"
-    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore"/>
+<?xml version="1.0" encoding="ASCII"?>
+<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore" name="CPP Generator"/>

+ 5 - 4
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/wizard/ModelCreator.java

@@ -6,9 +6,9 @@ import java.util.List;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions.LibraryDescriptor;
 import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider;
-import org.yakindu.sct.generator.core.features.LibraryExtensions;
-import org.yakindu.sct.generator.core.features.LibraryExtensions.LibraryDescriptor;
 import org.yakindu.sct.model.sgen.FeatureConfiguration;
 import org.yakindu.sct.model.sgen.FeatureType;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
@@ -26,7 +26,7 @@ import com.google.common.collect.Lists;
  */
 public class ModelCreator {
 
-	private SGenFactory factory = SGenFactory.eINSTANCE;
+	private final SGenFactory factory = SGenFactory.eINSTANCE;
 	private final String generatorId;
 	private final List<Statechart> statecharts;
 
@@ -66,9 +66,10 @@ public class ModelCreator {
 			IDefaultFeatureValueProvider defaultProvider = desc
 					.createFeatureValueProvider();
 			if (defaultProvider != null
-					&& defaultProvider.isProviderFor((FeatureTypeLibrary)featureType.eContainer()))
+					&& defaultProvider.isProviderFor(featureType.getLibrary())) {
 				return defaultProvider.createDefaultFeatureConfiguration(
 						featureType, statechart);
+			}
 		}
 		return null;
 	}

+ 2 - 2
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/scoping/SGenGlobalScopeProvider.java

@@ -9,8 +9,8 @@ import org.eclipse.xtext.resource.IEObjectDescription;
 import org.eclipse.xtext.scoping.IScope;
 import org.eclipse.xtext.scoping.impl.DefaultGlobalScopeProvider;
 import org.eclipse.xtext.scoping.impl.SimpleScope;
-import org.yakindu.sct.generator.core.features.LibraryExtensions;
-import org.yakindu.sct.generator.core.features.LibraryExtensions.LibraryDescriptor;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions.LibraryDescriptor;
 import org.yakindu.sct.generator.genmodel.resource.FeatureResourceDescription;
 import org.yakindu.sct.model.sgen.GeneratorModel;
 import org.yakindu.sct.model.sgen.SGenPackage;

+ 7 - 7
plugins/org.yakindu.sct.generator.java/library/FeatureTypeLibrary.xmi

@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="ASCII"?>
-<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore">
-  <types name="NamingFeature">
-    <parameters name="basePackage"/>
-    <parameters name="implementationSuffix"/>
-  </types>
-</sgen:FeatureTypeLibrary>
+<?xml version="1.0" encoding="ASCII"?>
+<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" xsi:schemaLocation="http://www.yakindu.org/sct/statechart/SGen ../../org.yakindu.sct.model.sgen/model/emf/sgen.ecore" name="Java Generator">
+  <types name="NamingFeature">
+    <parameters name="basePackage"/>
+    <parameters name="implementationSuffix"/>
+  </types>
+</sgen:FeatureTypeLibrary>

+ 1 - 0
plugins/org.yakindu.sct.generator.java/plugin.xml

@@ -13,6 +13,7 @@
    <extension
          point="org.yakindu.sct.generator.core.featuretypes">
       <FeatureLibrary
+            defaultProvider="org.yakindu.sct.generator.java.features.JavaFeatureValueProvider"
             generatorId="yakindu::java"
             uri="platform:/plugin/org.yakindu.sct.generator.java/library/FeatureTypeLibrary.xmi">
       </FeatureLibrary>

+ 2 - 0
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/IJavaFeatureConstants.java

@@ -7,6 +7,8 @@ package org.yakindu.sct.generator.java.features;
  */
 public interface IJavaFeatureConstants {
 
+	public static final String LIBRARY_NAME = "Java Generator";
+
 	public static final String NAMING_FEATURE = "NamingFeature";
 
 	public static final String BASE_PACKAGE = "basePackage";

+ 5 - 6
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/features/JavaFeatureValueProvider.java

@@ -2,9 +2,9 @@ package org.yakindu.sct.generator.java.features;
 
 import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.BASE_PACKAGE;
 import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.IMPLEMENTATION_SUFFIX;
+import static org.yakindu.sct.generator.java.features.IJavaFeatureConstants.LIBRARY_NAME;
 
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
-import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 import org.yakindu.sct.model.sgraph.Statechart;
@@ -15,8 +15,7 @@ import org.yakindu.sct.model.sgraph.Statechart;
  * 
  */
 public class JavaFeatureValueProvider extends
-		AbstractDefaultFeatureValueProvider implements
-		IDefaultFeatureValueProvider {
+		AbstractDefaultFeatureValueProvider {
 
 	@Override
 	protected void setDefaultValue(FeatureParameterValue parameterValue,
@@ -25,13 +24,13 @@ public class JavaFeatureValueProvider extends
 			parameterValue.setValue("org.yakindu.sct." + statechart.getName());
 		} else if (parameterValue.getParameter().getName()
 				.equals(IMPLEMENTATION_SUFFIX)) {
-			parameterValue.setValue("impl");
+			parameterValue.setValue("Impl");
 		}
 	}
 
+	@Override
 	public boolean isProviderFor(FeatureTypeLibrary library) {
-		//TODO
-		return false;
+		return library.getName().equals(LIBRARY_NAME);
 	}
 
 }