|
@@ -15,17 +15,29 @@ import org.yakindu.sct.model.sgraph.Statechart
|
|
|
import org.eclipse.xtext.generator.IFileSystemAccess
|
|
|
import com.google.inject.Inject
|
|
|
import org.yakindu.sct.model.sgen.GeneratorEntry
|
|
|
+import org.yakindu.sct.generator.core.impl.SimpleResourceFileSystemAccess
|
|
|
+import org.eclipse.core.resources.ResourcesPlugin
|
|
|
+import org.eclipse.core.runtime.Path
|
|
|
|
|
|
class Types {
|
|
|
-
|
|
|
+
|
|
|
@Inject extension Naming
|
|
|
@Inject extension GenmodelEntries
|
|
|
-
|
|
|
+
|
|
|
def generateTypesH(ExecutionFlow flow, Statechart sc, IFileSystemAccess fsa, GeneratorEntry entry) {
|
|
|
- fsa.generateFile(flow.typesModule.h, flow.typesHContent(entry))
|
|
|
+ if (fsa instanceof SimpleResourceFileSystemAccess &&
|
|
|
+ !exists(flow.typesModule.h, fsa as SimpleResourceFileSystemAccess)) {
|
|
|
+ fsa.generateFile(flow.typesModule.h, flow.typesHContent(entry))
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ def protected exists(String filename, SimpleResourceFileSystemAccess 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»
|
|
|
|
|
@@ -55,7 +67,7 @@ class Types {
|
|
|
|
|
|
#define bool_true true
|
|
|
#define bool_false false
|
|
|
-
|
|
|
+
|
|
|
#endif /* «typesModule.define»_H_ */
|
|
|
'''
|
|
|
-}
|
|
|
+}
|