فهرست منبع

#366 : remove static EFSFileSystemAccess#getProject 2.0

Johannes Dicks 9 سال پیش
والد
کامیت
f01f0c7d8a

+ 1 - 1
plugins/org.yakindu.sct.domain.generic/src/org/yakindu/sct/domain/generic/extension/GenericDomainInjectorProvider.java

@@ -128,7 +128,7 @@ public class GenericDomainInjectorProvider implements IDomainInjectorProvider {
 	@Override
 	public Injector getSequencerInjector(Module overrides) {
 		ArrayList<Module> tmpOverrides = Lists.newArrayList(overrides);
-		//FIXME !!! argh... get rid of that :)
+		//FIXME !!! remove shared state module
 		if(Platform.isRunning()){
 			tmpOverrides.add(getSharedStateModule());
 		}

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

@@ -20,7 +20,7 @@ import org.yakindu.sct.model.sgen.GeneratorEntry;
  * 
  * @author holger willebrandt - Initial contribution and API
  */ 
-//FIXME !!! used in generator samples (Xtend2 & Java)
+//FIXME !!! used in generator runtime samples (Xtend2 & Java)
 public abstract class AbstractWorkspaceGenerator extends AbstractSExecModelGenerator {
 	
 	public final void refreshTargetProject(GeneratorEntry entry) {

+ 1 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/AbstractXpandBasedCodeGenerator.java

@@ -29,6 +29,7 @@ import org.eclipse.xtext.generator.IFileSystemAccess;
 import org.yakindu.base.base.BasePackage;
 import org.yakindu.base.types.TypesPackage;
 import org.yakindu.sct.generator.core.features.ICoreFeatureConstants;
+import org.yakindu.sct.generator.core.util.EFSHelper;
 import org.yakindu.sct.model.sexec.ExecutionFlow;
 import org.yakindu.sct.model.sexec.SexecPackage;
 import org.yakindu.sct.model.sgen.GeneratorEntry;

+ 1 - 0
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/GenericJavaBasedGenerator.java

@@ -141,6 +141,7 @@ public class GenericJavaBasedGenerator extends AbstractSExecModelGenerator {
 	 * Provides a pre configured IFileSystemAccess instance
 	 */
 	public IFileSystemAccess getFileSystemAccess(GeneratorEntry entry) {
+		//FIXME !!! unify, this is duplicate see ...Java*Generic*Something
 		// set target project value
 		sctFileSystemAccess.setOutputPath(ICoreFeatureConstants.OUTLET_FEATURE_TARGET_PROJECT,
 				outletFeatureHelper.getTargetProjectValue(entry).getStringValue());

+ 26 - 21
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/impl/EFSHelper.java

@@ -9,7 +9,7 @@
  * 		committers of YAKINDU - initial API and implementation
  * 
  */
-package org.yakindu.sct.generator.core.impl;
+package org.yakindu.sct.generator.core.util;
 
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -17,41 +17,46 @@ import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
+import org.yakindu.sct.generator.core.impl.AbstractXpandBasedCodeGenerator;
 import org.yakindu.sct.generator.core.library.OutletFeatureHelperImpl;
 import org.yakindu.sct.model.sgen.GeneratorEntry;
 
+//FIXME !!! integrate dependent classes with SCTFileSystemAccess?!
 /**
+ * NOTE : dependent classes are not useable in headless context
  * @author Johannes Dicks - Initial contribution and API
  *
  */
-//FIXME !!! dependent classes are not useable in headless context
 public class EFSHelper {
 
-		public void refreshTargetProject(GeneratorEntry entry){
+	public void refreshTargetProject(GeneratorEntry entry) {
+		if (Platform.isRunning()) {
+
 			try {
 				IProject project = getTargetProject(entry);
 				if (project != null && project.isAccessible())
 					project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
 			} catch (CoreException e) {
-				//FIXME !!! handle properly?!
-				e.printStackTrace();
+				throw new RuntimeException(e);
 			}
-		}	
-		
-		/**
-		 * Returns an IProject for the configured target project. The
-		 * {@link IProject} is returned even if the project does not exist yet.
-		 * 
-		 * @param entry
-		 * @return
-		 */
-		public IProject getTargetProject(GeneratorEntry entry) {
-			String stringValue = new OutletFeatureHelperImpl().getTargetProjectValue(entry).getStringValue();
-			if (Platform.isRunning()) {
-				IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(stringValue);
-				return project;
-			} else
-				throw new IllegalStateException("The "+AbstractXpandBasedCodeGenerator.class.getSimpleName()+" needs a running eclipse.Platform" );
 		}
+	}
+
+	/**
+	 * Returns an IProject for the configured target project. The
+	 * {@link IProject} is returned even if the project does not exist yet.
+	 * 
+	 * @param entry
+	 * @return
+	 */
+	public IProject getTargetProject(GeneratorEntry entry) {
+		String stringValue = new OutletFeatureHelperImpl().getTargetProjectValue(entry).getStringValue();
+		if (Platform.isRunning()) {
+			IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(stringValue);
+			return project;
+		} else
+			throw new IllegalStateException("The " + AbstractXpandBasedCodeGenerator.class.getSimpleName()
+					+ " needs a running eclipse.Platform");
+	}
 
 }