Selaa lähdekoodia

[YAKHMI-871] Change the libarys in generator.core for more hierarchy

malknet42 12 vuotta sitten
vanhempi
commit
79bff78748

+ 8 - 0
plugins/org.yakindu.sct.generator.c/plugin.xml

@@ -17,6 +17,9 @@
          <FeatureLibrary
                library_id="org.yakindu.sct.generator.feature.c">
          </FeatureLibrary>
+         <FeatureLibrary
+               library_id="org.yakindu.generator.core.features.sctbase">
+         </FeatureLibrary>
       </SCTGenerator>
    </extension>
    <extension
@@ -26,6 +29,11 @@
             library_id="org.yakindu.sct.generator.feature.c"
             uri="platform:/plugin/org.yakindu.sct.generator.c/library/FeatureTypeLibrary.xmi">
       </FeatureLibrary>
+      <FeatureLibrary
+            defaultProvider="org.yakindu.sct.generator.c.AbstractDefaultFeatureValueProvider:1"
+            library_id="org.yakindu.sct.generator.c.FeatureLibrary1"
+            uri="org.yakindu.sct.generator.c.FeatureLibrary1">
+      </FeatureLibrary>
    </extension>
    <extension
          point="org.yakindu.sct.generator.core.extensions">

+ 2 - 14
plugins/org.yakindu.sct.generator.core/library/CoreFeatureTypeLibrary.xmi

@@ -4,21 +4,9 @@
     <parameters name="targetProject"/>
     <parameters name="targetFolder"/>
   </types>
-  <types name="Debug" optional="true">
-    <parameters name="dumpSexec" parameterType="BOOLEAN"/>
-  </types>
+
   <types name="LicenseHeader" optional="true">
     <parameters name="licenseText"/>
   </types>
-  <types name="FunctionInlining" optional="true">
-    <parameters name="inlineReactions" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineEntryActions" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineExitActions" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineEnterSequences" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineExitSequences" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineChoices" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineEnterRegion" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineExitRegion" optional="true" parameterType="BOOLEAN"/>
-    <parameters name="inlineEntries" optional="true" parameterType="BOOLEAN"/>
-  </types>
+
 </sgen:FeatureTypeLibrary>

+ 17 - 0
plugins/org.yakindu.sct.generator.core/library/SCTBaseFeatureLibrary.xmi

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="ASCII"?>
+<sgen:FeatureTypeLibrary xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:sgen="http://www.yakindu.org/sct/statechart/SGen" name="SCT Base">
+  <types name="Debug" optional="true">
+    <parameters name="dumpSexec" parameterType="BOOLEAN"/>
+  </types>
+  <types name="FunctionInlining" optional="true">
+    <parameters name="inlineReactions" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineEntryActions" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineExitActions" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineEnterSequences" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineExitSequences" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineChoices" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineEnterRegion" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineExitRegion" optional="true" parameterType="BOOLEAN"/>
+    <parameters name="inlineEntries" optional="true" parameterType="BOOLEAN"/>
+  </types>
+</sgen:FeatureTypeLibrary>

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

@@ -24,6 +24,17 @@
             generatorId="yakindu::generic"
             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">

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

@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2011 committers of YAKINDU and others.
+ * Copyright (c) 2013 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
@@ -14,6 +14,7 @@ package org.yakindu.sct.generator.core.features;
  * Core Feature Constants defined by this plugin
  * 
  * @author andreas muelder - Initial contribution and API
+ * @author oliver bohl
  * 
  */
 public interface ICoreFeatureConstants {
@@ -23,22 +24,7 @@ public interface ICoreFeatureConstants {
 	public static final String OUTLET_FEATURE = "Outlet";
 	public static final String OUTLET_FEATURE_TARGET_PROJECT = "targetProject";
 	public static final String OUTLET_FEATURE_TARGET_FOLDER = "targetFolder";
-
-	public static final String DEBUG_FEATURE = "Debug";
-	public static final String DEBUG_FEATURE_DUMP_SEXEC = "dumpSexec";
-
-	public static final String FUNCTION_INLINING_FEATURE = "FunctionInlining";
-
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_REACTIONS = "inlineReactions";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS = "inlineEntryActions";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES = "inlineEnterSequences";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS = "inlineExitActions";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES = "inlineExitSequences";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_CHOICES = "inlineChoices";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTRIES = "inlineEntries";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION = "inlineEnterRegion";
-	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION = "inlineExitRegion";
-
+	
 	public static final String LICENSE_HEADER = "LicenseHeader";
 	public static final String LICENSE_TEXT = "licenseText";
 }

+ 39 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/ISCTBaseFeatureConstants.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright (c) 2013 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;
+
+/**
+ * SCT Base Feature Constants defined by this plugin
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * @author oliver bohl
+ *  
+ */
+public interface ISCTBaseFeatureConstants {
+	
+	public static final String LIBRARY_NAME = "SCT Base";
+	
+	public static final String DEBUG_FEATURE = "Debug";
+	public static final String DEBUG_FEATURE_DUMP_SEXEC = "dumpSexec";
+	
+	public static final String FUNCTION_INLINING_FEATURE = "FunctionInlining";
+
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_REACTIONS = "inlineReactions";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS = "inlineEntryActions";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES = "inlineEnterSequences";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS = "inlineExitActions";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES = "inlineExitSequences";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_CHOICES = "inlineChoices";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTRIES = "inlineEntries";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION = "inlineEnterRegion";
+	public static final String FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION = "inlineExitRegion";
+
+}

+ 2 - 9
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/CoreLibraryDefaultFeatureValueProvider.java

@@ -10,7 +10,6 @@
  */
 package org.yakindu.sct.generator.core.features.impl;
 
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.DEBUG_FEATURE_DUMP_SEXEC;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LIBRARY_NAME;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.LICENSE_TEXT;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_FOLDER;
@@ -20,7 +19,6 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.emf.ecore.EObject;
 import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
-import org.yakindu.sct.model.sgen.BoolLiteral;
 import org.yakindu.sct.model.sgen.FeatureParameterValue;
 import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
 
@@ -43,9 +41,8 @@ public class CoreLibraryDefaultFeatureValueProvider extends
 			parameterValue.setValue("src-gen");
 		} else if (OUTLET_FEATURE_TARGET_PROJECT.equals(parameterName)) {
 			parameterValue.setValue(getProject(contextElement).getName());
-		} else if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)) {
-			parameterValue.setValue(false);
-		} else if (LICENSE_TEXT.equals(parameterName)) {
+		} 
+		else if (LICENSE_TEXT.equals(parameterName)) {
 			parameterValue.setValue("Enter license text here");
 		}
 	}
@@ -75,10 +72,6 @@ public class CoreLibraryDefaultFeatureValueProvider extends
 						parameterValue.getExpression(), targetProjectName));
 			}
 		}
-		if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)
-				&& !(parameterValue.getExpression() instanceof BoolLiteral)) {
-			return error("Illegal Value. Must be 'true' or 'false'");
-		}
 		return Status.OK_STATUS;
 	}
 }

+ 0 - 24
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/IXpandFeatureConstants.java

@@ -1,24 +0,0 @@
-/**
- * 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;
-
-/**
- * 
- * @author holger willebrandt - Initial contribution and API
- */
-public interface IXpandFeatureConstants {
-
-	public static final String LIBRARY_NAME = "Xpand";
-	public static final String TEMPLATE_FEATURE = "Template";
-	public static final String TEMPLATE_FEATURE_TEMPLATE_PATH = "templatePath";
-	public static final String TEMPLATE_FEATURE_TEMPLATE_PROJECT = "templateProject";
-
-}

+ 51 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/features/impl/SCTBaseLibaryDefaultFeatureValueProvider.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2013 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.ISCTBaseFeatureConstants.LIBRARY_NAME;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.DEBUG_FEATURE_DUMP_SEXEC;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.emf.ecore.EObject;
+import org.yakindu.sct.generator.core.features.AbstractDefaultFeatureValueProvider;
+import org.yakindu.sct.model.sgen.BoolLiteral;
+import org.yakindu.sct.model.sgen.FeatureParameterValue;
+import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
+
+/**
+ * 
+ * @author oliver bohl - Initial contribution
+ */
+public class SCTBaseLibaryDefaultFeatureValueProvider extends
+AbstractDefaultFeatureValueProvider{
+
+	public boolean isProviderFor(FeatureTypeLibrary library) {
+		return LIBRARY_NAME.equals(library.getName());
+	}	
+	
+	@Override
+	protected void setDefaultValue(FeatureParameterValue parameterValue, EObject contextElement) {
+		String parameterName = parameterValue.getParameter().getName();
+		if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)) {
+			parameterValue.setValue(false);
+		}
+	}
+	
+	public IStatus validateParameterValue(FeatureParameterValue parameterValue) {
+		String parameterName = parameterValue.getParameter().getName();
+		if (DEBUG_FEATURE_DUMP_SEXEC.equals(parameterName)
+				&& !(parameterValue.getExpression() instanceof BoolLiteral)) {
+			return error("Illegal Value. Must be 'true' or 'false'");
+		}
+		return Status.OK_STATUS;
+	}
+}

+ 10 - 10
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractSExecModelGenerator.java

@@ -10,16 +10,16 @@
  */
 package org.yakindu.sct.generator.core.impl;
 
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_CHOICES;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTRIES;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_REACTIONS;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_CHOICES;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTER_REGION;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTER_SEQUENCES;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTRIES;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_ENTRY_ACTIONS;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_ACTIONS;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_REGION;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_EXIT_SEQUENCES;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.FUNCTION_INLINING_FEATURE_INLINE_REACTIONS;
 import static org.yakindu.sct.generator.core.util.GeneratorUtils.getBoolValue;
 
 import java.io.IOException;

+ 2 - 2
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/util/GeneratorUtils.java

@@ -1,7 +1,7 @@
 package org.yakindu.sct.generator.core.util;
 
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.DEBUG_FEATURE;
-import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.DEBUG_FEATURE_DUMP_SEXEC;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.DEBUG_FEATURE;
+import static org.yakindu.sct.generator.core.features.ISCTBaseFeatureConstants.DEBUG_FEATURE_DUMP_SEXEC;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE;
 import static org.yakindu.sct.generator.core.features.ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT;
 

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

@@ -5,7 +5,7 @@
     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">
+    name="Java Generator">
   <types name="Naming"
       optional="true">
     <parameters

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

@@ -13,6 +13,9 @@
           <FeatureLibrary
                 library_id="org.yakindu.generator.core.features">
           </FeatureLibrary>
+          <FeatureLibrary
+                library_id="org.yakindu.generator.core.features.sctbase">
+          </FeatureLibrary>
           <FeatureLibrary
                 library_id="org.yakindu.sct.generator.feature.java">
           </FeatureLibrary>