瀏覽代碼

#366 : do not use OutletfeatureHelper instance

Johannes Dicks 9 年之前
父節點
當前提交
00a6226dcb

+ 3 - 14
plugins/org.yakindu.sct.generator.c/src/org/yakindu/sct/generator/c/Types.xtend

@@ -11,41 +11,30 @@
 package org.yakindu.sct.generator.c
 
 import com.google.inject.Inject
-import org.eclipse.core.resources.ResourcesPlugin
-import org.eclipse.core.runtime.Path
 import org.eclipse.xtext.generator.IFileSystemAccess
 import org.yakindu.sct.generator.core.impl.IExecutionFlowGenerator
 import org.yakindu.sct.model.sgraph.Statechart
-import org.yakindu.sct.generator.core.filesystem.EFSResourceFileSystemAccess
 import org.yakindu.sct.model.sexec.ExecutionFlow
 import org.yakindu.sct.model.sgen.GeneratorEntry
-import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl
+import org.yakindu.sct.generator.core.library.IOutletFeatureHelper
 
 class Types {
 
 	@Inject extension Naming
 	@Inject extension GenmodelEntries
+	@Inject IOutletFeatureHelper outletFeatureHelper
 
 	def generateTypesH(ExecutionFlow flow, Statechart sc, IFileSystemAccess fsa, GeneratorEntry entry) {
-		if (new OutletFeatureHelperImpl().getLibraryTargetFolderValue(entry) != null) {
+		if (outletFeatureHelper.getLibraryTargetFolderValue(entry) != null) {
 			// sc_types.h is static, so we use the library target folder in case its configured
 			fsa.generateFile(flow.typesModule.h, IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT,
 				flow.typesHContent(entry))
 		} else {
 			// use default target folder path in case no library target folder is specified (the file will be overwritten there)
-			if (fsa instanceof EFSResourceFileSystemAccess &&
-				!exists(flow.typesModule.h, fsa as EFSResourceFileSystemAccess)) {
 				fsa.generateFile(flow.typesModule.h, flow.typesHContent(entry))
-			}
 		}
 	}
 
-	def protected exists(String filename, EFSResourceFileSystemAccess fsa) {
-		val uri = fsa.getURI(filename);
-		val file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(uri.toPlatformString(true)));
-		return file.exists;
-	}
-
 	def typesHContent(ExecutionFlow it, GeneratorEntry entry) '''
 		«entry.licenseText»
 		

+ 6 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/library/OutletFeatureHelperImpl.java

@@ -19,6 +19,12 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
 
 public class OutletFeatureHelperImpl extends BaseSGenFeatureHelper implements IOutletFeatureHelper {
 
+	/**
+	 * 
+	 */
+	public OutletFeatureHelperImpl() {
+		// TODO Auto-generated constructor stub
+	}
 	@Override
 	public FeatureParameterValue getTargetFolderValue(GeneratorEntry entry) {
 		return getFeatureParameter(entry, OUTLET_FEATURE, ICoreFeatureConstants.OUTLET_FEATURE_TARGET_FOLDER);

+ 0 - 10
plugins/org.yakindu.sct.generator.cpp/src/org/yakindu/sct/generator/cpp/Types.xtend

@@ -26,19 +26,9 @@ class Types {
 	@Inject extension GenmodelEntries
 	 
 	def generateTypesHpp(ExecutionFlow flow, Statechart sc, IFileSystemAccess fsa, GeneratorEntry entry) {
-		if (fsa instanceof EFSResourceFileSystemAccess &&
-			!exists(flow.typesModule.h, fsa as EFSResourceFileSystemAccess)) {
 			fsa.generateFile(flow.typesModule.h, flow.typesHContent(entry))	
-		}
 	}
 	
-	def protected exists(String filename, EFSResourceFileSystemAccess fsa) {
-		val uri = fsa.getURI(filename);
-		val file = ResourcesPlugin.getWorkspace().getRoot()
-					.getFile(new Path(uri.toPlatformString(true)));
-		return file.exists;
-	}	
-	
 	def typesHContent(ExecutionFlow it, GeneratorEntry entry) '''
 		«entry.licenseText»
 		

+ 4 - 2
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/IStatemachine.xtend

@@ -15,7 +15,7 @@ import org.yakindu.sct.generator.core.impl.IExecutionFlowGenerator
 import org.yakindu.sct.model.sexec.ExecutionFlow
 import org.yakindu.sct.model.sgen.GeneratorEntry
 
-import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl
+import org.yakindu.sct.generator.core.library.IOutletFeatureHelper
 
 class IStatemachine {
 	
@@ -24,9 +24,11 @@ class IStatemachine {
 	
 	@Inject
 	extension GenmodelEntries
+	
+	@Inject IOutletFeatureHelper outletFeatureHelper
 	 
 	def generateIStatemachine(ExecutionFlow flow, GeneratorEntry entry, IFileSystemAccess fsa) {
-		if (new OutletFeatureHelperImpl().getLibraryTargetFolderValue(entry) != null) {	
+		if (outletFeatureHelper.getLibraryTargetFolderValue(entry) != null) {	
 			// generate into library target folder in case one is specified, as the contents are static
 			fsa.generateFile(entry.basePackagePath + '/' + iStatemachine.java, IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT, content(entry))
 		} else {

+ 4 - 2
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/ITimer.xtend

@@ -15,7 +15,7 @@ import org.yakindu.sct.generator.core.impl.IExecutionFlowGenerator
 
 import org.yakindu.sct.model.sgen.GeneratorEntry
 import org.yakindu.sct.model.sexec.ExecutionFlow
-import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl
+import org.yakindu.sct.generator.core.library.IOutletFeatureHelper
 
 class ITimer {
 	
@@ -25,8 +25,10 @@ class ITimer {
 	@Inject
 	extension GenmodelEntries
 	
+	@Inject IOutletFeatureHelper outletFeatureHelper
+	
 	def generateITimer(ExecutionFlow flow, GeneratorEntry entry, IFileSystemAccess fsa) {
-		if (new OutletFeatureHelperImpl().getLibraryTargetFolderValue(entry) != null) {	
+		if (outletFeatureHelper.getLibraryTargetFolderValue(entry) != null) {	
 			// generate into library target folder in case one is specified, as the contents are static
 			fsa.generateFile(entry.basePackagePath + '/' + iTimer.java, IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT, content(entry))
 		} else {

+ 4 - 1
plugins/org.yakindu.sct.generator.java/src/org/yakindu/sct/generator/java/ITimerCallback.xtend

@@ -15,6 +15,7 @@ import org.yakindu.sct.generator.core.impl.IExecutionFlowGenerator
 import org.yakindu.sct.model.sgen.GeneratorEntry
 import org.yakindu.sct.model.sexec.ExecutionFlow
 import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl
+import org.yakindu.sct.generator.core.library.IOutletFeatureHelper
 
 class ITimerCallback {
 
@@ -23,9 +24,11 @@ class ITimerCallback {
 
 	@Inject
 	extension GenmodelEntries
+	
+	@Inject IOutletFeatureHelper outletFeatureHelper
 
 	def generateITimerCallback(ExecutionFlow flow, GeneratorEntry entry, IFileSystemAccess fsa) {
-		if (new OutletFeatureHelperImpl().getLibraryTargetFolderValue(entry) != null) {
+		if (outletFeatureHelper.getLibraryTargetFolderValue(entry) != null) {
 			// generate into library target folder in case one is specified, as the contents are static
 			fsa.generateFile(entry.basePackagePath + '/' + iTimerCallback.java,
 				IExecutionFlowGenerator.LIBRARY_TARGET_FOLDER_OUTPUT, content(entry))