Ver código fonte

check elementRef is named witin generator executor (#1107)

* improve logging during code gneration

* add element name to done log

* check is named element

* add import
Johannes Dicks 8 anos atrás
pai
commit
a97296878b

+ 11 - 10
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/execution/AbstractGeneratorEntryExecutor.java

@@ -12,6 +12,7 @@ package org.yakindu.sct.generator.core.execution;
 
 import java.util.List;
 
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.xtext.diagnostics.Severity;
 import org.eclipse.xtext.validation.CheckMode;
 import org.eclipse.xtext.validation.IResourceValidator;
@@ -51,29 +52,28 @@ public abstract class AbstractGeneratorEntryExecutor implements IGeneratorEntryE
 
 	@Override
 	public void execute(GeneratorEntry entry) {
-		NamedElement element = (NamedElement) entry.getElementRef();
+		logStart(entry);
 		if (valid(entry)) {
-			logger.log("Generating '" + element.getName() + "' to target project ..."
-					+ helper.getTargetProjectValue(entry).getStringValue());
 			try {
 				execute(factory.create(entry), entry);
 			} catch (Exception ex) {
 				logger.logError(ex);
-			} finally {
-				logger.log("done...");
 			}
 		}
-
+		logEnd(entry);
 	}
 
 	protected void logStart(GeneratorEntry entry) {
-		String elementName = ((NamedElement) entry.getElementRef()).getName();
+		EObject elementRef = entry.getElementRef();
+		String elementName = elementRef instanceof NamedElement
+				? ((NamedElement) elementRef).getName()
+				: elementRef.toString();
 		String targetProject = helper.getTargetProjectValue(entry).getStringValue();
-		logger.log(String.format("Generating %s to target project %s ...", elementName, targetProject));
+		logger.log(String.format("Generating '%s' to target project '%s' ...", elementName, targetProject));
 	}
 
 	protected void logEnd(GeneratorEntry entry) {
-		logger.log("done...");
+		logger.log(((NamedElement) entry.getElementRef()).getName() + " done.");
 	}
 
 	protected void logException(Exception ex) {
@@ -93,7 +93,8 @@ public abstract class AbstractGeneratorEntryExecutor implements IGeneratorEntryE
 			}
 		});
 		if (!Iterables.isEmpty(errors)) {
-			logger.log("The referenced model contains errors and could not be generated:");
+			logger.log("The referenced model(" + ((NamedElement) entry.getElementRef()).getName()
+					+ ") contains errors and could not be generated:");
 			for (Issue issue : errors) {
 				logger.log(issue.getMessage());
 			}