Przeglądaj źródła

Merge pull request #229 from Yakindu/coverity_issues

Coverity issues
Andreas Mülder 10 lat temu
rodzic
commit
41c9effde9

+ 17 - 34
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/action/GenerateModelAction.java

@@ -48,19 +48,13 @@ public class GenerateModelAction implements IObjectActionDelegate {
 	@Inject
 	private GeneratorExecutor generatorExecutor;
 
-	@SuppressWarnings("unused")
-	private IWorkbenchPart workbenchPart;
-
 	public void run(IAction action) {
 		IFile file = unwrap();
 
 		if (hasError(file)) {
-			Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
-					.getShell();
-			ErrorDialog.openError(shell, "Generator Error",
-					"Cannot execute Generator", new Status(IStatus.ERROR,
-							GeneratorActivator.PLUGIN_ID,
-							"The file contains errors"));
+			Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+			ErrorDialog.openError(shell, "Generator Error", "Cannot execute Generator",
+					new Status(IStatus.ERROR, GeneratorActivator.PLUGIN_ID, "The file contains errors"));
 			return;
 		}
 		generatorExecutor.executeGenerator(file);
@@ -69,56 +63,45 @@ public class GenerateModelAction implements IObjectActionDelegate {
 	private boolean hasError(IFile file) {
 		IMarker[] findMarkers = null;
 		try {
-			findMarkers = file.findMarkers(IMarker.PROBLEM, true,
-					IResource.DEPTH_INFINITE);
+			findMarkers = file.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_INFINITE);
 			for (IMarker iMarker : findMarkers) {
-				Integer attribute = (Integer) iMarker
-						.getAttribute(IMarker.SEVERITY);
+				Integer attribute = (Integer) iMarker.getAttribute(IMarker.SEVERITY);
 				if (attribute.intValue() == IMarker.SEVERITY_ERROR) {
 					return true;
 				}
 			}
 		} catch (CoreException e) {
-			SGenActivator
-					.getInstance()
-					.getLog()
-					.log(new Status(
-							IStatus.WARNING,
-							SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN,
+			SGenActivator.getInstance().getLog()
+					.log(new Status(IStatus.WARNING, SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN,
 							"Error in determine, if file contains errors", e));
 		}
 
 		ResourceSet rs = new ResourceSetImpl();
 
 		try {
-			Resource resource = rs.getResource(URI.createPlatformResourceURI(
-					file.getFullPath().toString(), true), true);
+			Resource resource = rs.getResource(URI.createPlatformResourceURI(file.getFullPath().toString(), true),
+					true);
+			if (resource == null)
+				return false;
 			if (!resource.getErrors().isEmpty()) {
 				return true;
 			}
-			if (resource != null && !resource.getContents().isEmpty()) {
-				Diagnostic diagnostic = Diagnostician.INSTANCE
-						.validate(resource.getContents().get(0));
+			if (!resource.getContents().isEmpty()) {
+				Diagnostic diagnostic = Diagnostician.INSTANCE.validate(resource.getContents().get(0));
 				if (diagnostic.getSeverity() == Diagnostic.ERROR) {
 					return true;
 				}
 			}
 		} catch (RuntimeException e) {
-			SGenActivator
-					.getInstance()
-					.getLog()
-					.log(new Status(
-							IStatus.INFO,
-							SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN,
-							"Error in opening Resource", e));
+			SGenActivator.getInstance().getLog().log(new Status(IStatus.INFO,
+					SGenActivator.ORG_YAKINDU_SCT_GENERATOR_GENMODEL_SGEN, "Error in opening Resource", e));
 		}
 		return false;
 	}
 
 	private IFile unwrap() {
 		if (selection instanceof StructuredSelection) {
-			Object firstElement = ((StructuredSelection) selection)
-					.getFirstElement();
+			Object firstElement = ((StructuredSelection) selection).getFirstElement();
 			if (firstElement instanceof IFile) {
 				return (IFile) firstElement;
 			}
@@ -131,7 +114,7 @@ public class GenerateModelAction implements IObjectActionDelegate {
 	}
 
 	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		this.workbenchPart = targetPart;
+		// Nothing to do
 	}
 
 }

+ 69 - 74
plugins/org.yakindu.sct.generator.genmodel.ui/src/org/yakindu/sct/generator/genmodel/ui/highlighting/SGenSemanticHighlightingCalculator.java

@@ -1,74 +1,69 @@
-/**
- * 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.genmodel.ui.highlighting;
-
-import java.util.List;
-
-import org.eclipse.emf.common.util.TreeIterator;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.xtext.nodemodel.INode;
-import org.eclipse.xtext.nodemodel.impl.LeafNode;
-import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
-import org.eclipse.xtext.resource.XtextResource;
-import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration;
-import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightedPositionAcceptor;
-import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
-import org.yakindu.sct.model.sgen.DeprecatableElement;
-import org.yakindu.sct.model.sgen.GeneratorEntry;
-import org.yakindu.sct.model.sgen.SGenPackage;
-import org.yakindu.sct.model.sgen.impl.FeatureConfigurationImpl;
-
-/**
- * 
- * @author andreas muelder - Initial contribution and API
- * 
- */
-public class SGenSemanticHighlightingCalculator implements ISemanticHighlightingCalculator {
-
-	public void provideHighlightingFor(XtextResource resource, IHighlightedPositionAcceptor acceptor) {
-		if (resource == null || resource.getParseResult() == null)
-			return;
-		TreeIterator<EObject> allContents = resource.getAllContents();
-		while (allContents.hasNext()) {
-			final EObject object = allContents.next();
-			if (object instanceof GeneratorEntry) {
-				GeneratorEntry entry = (GeneratorEntry) object;
-
-				List<INode> nodes = NodeModelUtils.findNodesForFeature(entry,
-						SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
-				List<INode> features = NodeModelUtils.findNodesForFeature(entry,
-						SGenPackage.Literals.GENERATOR_ENTRY__FEATURES);
-				for (INode node : nodes) {
-					if (node instanceof LeafNode && !((LeafNode) node).isHidden()) {
-						acceptor.addPosition(node.getTotalOffset(), node.getTotalLength(),
-								DefaultHighlightingConfiguration.KEYWORD_ID);
-					}
-				}
-				for (INode node : features) {
-					if (node.getSemanticElement() instanceof FeatureConfigurationImpl) {
-						FeatureConfigurationImpl feature = (FeatureConfigurationImpl) node.getSemanticElement();
-						if (feature.getType() instanceof DeprecatableElement) {
-
-							DeprecatableElement deprecatableElement = feature.getType();
-							if (deprecatableElement.isDeprecated()) {
-								acceptor.addPosition(node.getTotalOffset(), node.getTotalLength(),
-										SGenHighlightingConfiguration.DEPRECATION);
-							}
-						}
-
-					}
-
-				}
-				allContents.prune();
-			}
-		}
-	}
-}
+/**
+ * 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.genmodel.ui.highlighting;
+
+import java.util.List;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.xtext.nodemodel.INode;
+import org.eclipse.xtext.nodemodel.impl.LeafNode;
+import org.eclipse.xtext.nodemodel.util.NodeModelUtils;
+import org.eclipse.xtext.resource.XtextResource;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.DefaultHighlightingConfiguration;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.IHighlightedPositionAcceptor;
+import org.eclipse.xtext.ui.editor.syntaxcoloring.ISemanticHighlightingCalculator;
+import org.yakindu.sct.model.sgen.DeprecatableElement;
+import org.yakindu.sct.model.sgen.GeneratorEntry;
+import org.yakindu.sct.model.sgen.SGenPackage;
+import org.yakindu.sct.model.sgen.impl.FeatureConfigurationImpl;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class SGenSemanticHighlightingCalculator implements ISemanticHighlightingCalculator {
+
+	public void provideHighlightingFor(XtextResource resource, IHighlightedPositionAcceptor acceptor) {
+		if (resource == null || resource.getParseResult() == null)
+			return;
+		TreeIterator<EObject> allContents = resource.getAllContents();
+		while (allContents.hasNext()) {
+			final EObject object = allContents.next();
+			if (object instanceof GeneratorEntry) {
+				GeneratorEntry entry = (GeneratorEntry) object;
+
+				List<INode> nodes = NodeModelUtils.findNodesForFeature(entry,
+						SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
+				List<INode> features = NodeModelUtils.findNodesForFeature(entry,
+						SGenPackage.Literals.GENERATOR_ENTRY__FEATURES);
+				for (INode node : nodes) {
+					if (node instanceof LeafNode && !((LeafNode) node).isHidden()) {
+						acceptor.addPosition(node.getTotalOffset(), node.getTotalLength(),
+								DefaultHighlightingConfiguration.KEYWORD_ID);
+					}
+				}
+				for (INode node : features) {
+					if (node.getSemanticElement() instanceof FeatureConfigurationImpl) {
+						FeatureConfigurationImpl feature = (FeatureConfigurationImpl) node.getSemanticElement();
+						DeprecatableElement deprecatableElement = feature.getType();
+						if (deprecatableElement.isDeprecated()) {
+							acceptor.addPosition(node.getTotalOffset(), node.getTotalLength(),
+									SGenHighlightingConfiguration.DEPRECATION);
+						}
+					}
+				}
+				allContents.prune();
+			}
+		}
+	}
+}

+ 369 - 369
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/validation/SGenJavaValidator.java

@@ -1,369 +1,369 @@
-/**
- * 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.genmodel.validation;
-
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.filter;
-import static com.google.common.collect.Iterables.transform;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.xtext.EcoreUtil2;
-import org.eclipse.xtext.validation.Check;
-import org.yakindu.base.base.NamedElement;
-import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
-import org.yakindu.sct.generator.core.extensions.GeneratorExtensions.GeneratorDescriptor;
-import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
-import org.yakindu.sct.generator.core.extensions.LibraryExtensions.LibraryDescriptor;
-import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider;
-import org.yakindu.sct.model.sgen.BoolLiteral;
-import org.yakindu.sct.model.sgen.DeprecatableElement;
-import org.yakindu.sct.model.sgen.FeatureConfiguration;
-import org.yakindu.sct.model.sgen.FeatureParameter;
-import org.yakindu.sct.model.sgen.FeatureParameterValue;
-import org.yakindu.sct.model.sgen.FeatureType;
-import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
-import org.yakindu.sct.model.sgen.GeneratorEntry;
-import org.yakindu.sct.model.sgen.GeneratorModel;
-import org.yakindu.sct.model.sgen.IntLiteral;
-import org.yakindu.sct.model.sgen.Literal;
-import org.yakindu.sct.model.sgen.ParameterTypes;
-import org.yakindu.sct.model.sgen.RealLiteral;
-import org.yakindu.sct.model.sgen.SGenPackage;
-import org.yakindu.sct.model.sgen.StringLiteral;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-/**
- * 
- * @author andreas muelder - Initial contribution and API
- * 
- */
-public class SGenJavaValidator extends AbstractSGenJavaValidator {
-
-	// Error messages
-	public static final String MISSING_REQUIRED_PARAMETER = "Missing required Parameter";
-	public static final String MISSING_REQUIRED_FEATURE = "Missing required feature";
-	public static final String DUPLICATE_PARAMETER = "Duplicate parameter!";
-	public static final String DUPLICATE_FEATURE = "Duplicate feature!";
-	public static final String UNKOWN_GENERATOR = "Unkown Generator";
-	public static final String INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED = "Incompatible type, Boolean expected";
-	public static final String INCOMPATIBLE_TYPE_INTEGER_EXPECTED = "Incompatible type, Integer expected";
-	public static final String INCOMPATIBLE_TYPE_FLOAT_EXPECTED = "Incompatible type, Float expected";
-	public static final String INCOMPATIBLE_TYPE_STRING_EXPECTED = "Incompatible type, String expected";
-	public static final String UNKNOWN_CONTENT_TYPE = "Unknown content type '";
-	public static final String DEPRECATED = "Element is depricated";
-	// Failure codes
-	public static final String CODE_REQUIRED_FEATURE = "code_req_feature";
-
-	@Check
-	public void checkContentType(GeneratorEntry entry) {
-		GeneratorModel generatorModel = EcoreUtil2.getContainerOfType(entry,
-				GeneratorModel.class);
-		GeneratorDescriptor descriptor = GeneratorExtensions
-				.getGeneratorDescriptorForId(generatorModel.getGeneratorId());
-		if (descriptor == null)
-			return;
-		String contentType = entry.getContentType();
-		if (contentType == null || contentType.trim().length() == 0) {
-			return;
-		}
-		if (!contentType.equals(descriptor.getContentType())) {
-			error(UNKNOWN_CONTENT_TYPE + contentType + "'",
-					SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
-		}
-	}
-
-	@Check
-	public void checkParameterValueType(
-			final FeatureParameterValue parameterValue) {
-		if (parameterValue == null || parameterValue.getExpression() == null)
-			return;
-		Literal value = parameterValue.getExpression();
-		ParameterTypes parameterType = parameterValue.getParameter()
-				.getParameterType();
-		switch (parameterType) {
-		case BOOLEAN:
-			if (!(value instanceof BoolLiteral))
-				error(INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-			break;
-		case INTEGER:
-			if (!(value instanceof IntLiteral))
-				error(INCOMPATIBLE_TYPE_INTEGER_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-			break;
-		case FLOAT:
-			if (!(value instanceof RealLiteral))
-				error(INCOMPATIBLE_TYPE_FLOAT_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-			break;
-		case STRING:
-			if (!(value instanceof StringLiteral))
-				error(INCOMPATIBLE_TYPE_STRING_EXPECTED,
-						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-			break;
-		}
-	}
-
-	@Check
-	public void checkParameterValue(final FeatureParameterValue value) {
-		if (value.getExpression() == null || value.getExpression() == null)
-			return;
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(value);
-
-		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptorForId(model.getGeneratorId());
-
-		IDefaultFeatureValueProvider provider = LibraryExtensions
-				.getDefaultFeatureValueProvider(
-						generatorDescriptor.getLibraryIDs(), value
-								.getParameter().getFeatureType().getLibrary());
-		IStatus status = provider.validateParameterValue(value);
-		createMarker(status);
-	}
-
-	private void createMarker(IStatus status) {
-		switch (status.getSeverity()) {
-		case IStatus.ERROR:
-			super.error(status.getMessage(),
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-			break;
-		case IStatus.WARNING:
-			super.warning(status.getMessage(),
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
-		}
-	}
-
-	@Check
-	public void checkGeneratorExists(GeneratorModel model) {
-		GeneratorDescriptor descriptor = GeneratorExtensions
-				.getGeneratorDescriptorForId(model.getGeneratorId());
-		if (descriptor == null) {
-			error(String.format(UNKOWN_GENERATOR + " %s!",
-					model.getGeneratorId()),
-					SGenPackage.Literals.GENERATOR_MODEL__GENERATOR_ID);
-		}
-	}
-
-	@Check
-	public void checkDuplicateGeneratorEntryFeature(
-			final FeatureConfiguration config) {
-		GeneratorEntry entry = (GeneratorEntry) config.eContainer();
-		Iterable<FeatureConfiguration> filter = Iterables.filter(
-				entry.getFeatures(), new Predicate<FeatureConfiguration>() {
-					public boolean apply(FeatureConfiguration input) {
-						return (input.getType().getName().equals(config
-								.getType().getName()));
-					}
-				});
-		if (Iterables.size(filter) > 1) {
-			error(DUPLICATE_FEATURE,
-					SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
-		}
-
-	}
-
-	@Check
-	public void checkDuplicateFeatureParameter(final FeatureParameterValue value) {
-		FeatureConfiguration entry = (FeatureConfiguration) value.eContainer();
-		Iterable<FeatureParameterValue> filter = Iterables.filter(
-				entry.getParameterValues(),
-				new Predicate<FeatureParameterValue>() {
-					public boolean apply(FeatureParameterValue input) {
-						return (input.getParameter().getName().equals(value
-								.getParameter().getName()));
-					}
-				});
-		if (Iterables.size(filter) > 1) {
-			error(DUPLICATE_PARAMETER,
-					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__PARAMETER);
-		}
-	}
-
-	@Check
-	public void checkRequiredFeatures(GeneratorEntry entry) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(entry);
-
-		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptorForId(model.getGeneratorId());
-
-		Iterable<LibraryDescriptor> libraryDescriptors = LibraryExtensions
-				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
-
-		Iterable<FeatureType> requiredFeatures = filter(
-				concat(transform(
-						transform(libraryDescriptors, getFeatureTypeLibrary()),
-						getFeatureTypes())), isRequired());
-		List<String> configuredTypes = Lists.newArrayList();
-		for (FeatureConfiguration featureConfiguration : entry.getFeatures()) {
-			configuredTypes.add(featureConfiguration.getType().getName());
-		}
-		for (FeatureType featureType : requiredFeatures) {
-			if (!configuredTypes.contains(featureType.getName()))
-				error(String.format(MISSING_REQUIRED_FEATURE + " %s",
-						featureType.getName()),
-						SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-						CODE_REQUIRED_FEATURE, featureType.getName());
-		}
-	}
-
-	@Check
-	public void checkDeprecatedFeatures(GeneratorEntry entry) {
-		Iterable<FeatureConfiguration> features = entry.getFeatures();
-		Iterable<FeatureType> deprecatedFeatures = filter(
-				transform(features, getFeatureType()), isDeprecated());
-		for (FeatureType feature : deprecatedFeatures) {
-			warning(String.format(DEPRECATED + " %s : %f", feature.getName(),
-					feature.getComment()),
-					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-					feature.getName());
-		}
-	}
-
-	@Check
-	public void checkRequiredParameters(FeatureConfiguration configuration) {
-		GeneratorModel model = (GeneratorModel) EcoreUtil2
-				.getRootContainer(configuration);
-
-		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
-				.getGeneratorDescriptorForId(model.getGeneratorId());
-
-		Iterable<LibraryDescriptor> libraryDescriptors = LibraryExtensions
-				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
-
-		Iterable<String> requiredParameters = transform(
-				filter(concat(transform(
-						filter(concat(transform(
-								transform(libraryDescriptors,
-										getFeatureTypeLibrary()),
-								getFeatureTypes())), hasName(configuration
-								.getType().getName())), getParmeter())),
-						isRequiredParamter()), getName());
-
-		List<String> configuredParameters = Lists.newArrayList();
-
-		for (FeatureParameterValue featureParameterValue : configuration
-				.getParameterValues()) {
-			configuredParameters.add(featureParameterValue.getParameter()
-					.getName());
-		}
-		for (String string : requiredParameters) {
-			if (!configuredParameters.contains(string))
-				error(String.format(MISSING_REQUIRED_PARAMETER + " %s", string),
-						SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
-		}
-	}
-
-	@Check
-	public void checkDeprecatedParameters(GeneratorEntry entry) {
-		Iterable<FeatureParameter> deprecatedParameters = filter(
-				concat(transform(
-						transform(entry.getFeatures(), getFeatureType()),
-						getParmeter())), isDeprecated());
-		for (FeatureParameter parameter : deprecatedParameters) {
-			warning(String.format(DEPRECATED + " %s : %f", parameter.getName(),
-					parameter.getComment()),
-					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
-					parameter.getName());
-		}
-	}
-
-	private Function<NamedElement, String> getName() {
-		return new Function<NamedElement, String>() {
-
-			public String apply(NamedElement from) {
-				return from.getName();
-			}
-		};
-	}
-
-	private Predicate<FeatureParameter> isRequiredParamter() {
-		return new Predicate<FeatureParameter>() {
-
-			public boolean apply(FeatureParameter input) {
-				return !input.isOptional();
-			}
-		};
-	}
-
-	private Predicate<DeprecatableElement> isDeprecated() {
-		return new Predicate<DeprecatableElement>() {
-			public boolean apply(DeprecatableElement input) {
-				return input.isDeprecated();
-			}
-		};
-	}
-
-	private Function<FeatureType, Iterable<FeatureParameter>> getParmeter() {
-		return new Function<FeatureType, Iterable<FeatureParameter>>() {
-
-			public Iterable<FeatureParameter> apply(FeatureType from) {
-				return from.getParameters();
-			}
-		};
-	}
-
-	private Predicate<NamedElement> hasName(final String name) {
-		return new Predicate<NamedElement>() {
-
-			public boolean apply(NamedElement input) {
-				if (name == null) {
-					return (input == null);
-				}
-				return name.equals(input.getName());
-			}
-		};
-	}
-
-	private static Predicate<FeatureType> isRequired() {
-		return new Predicate<FeatureType>() {
-
-			public boolean apply(FeatureType input) {
-				return !input.isOptional();
-			}
-		};
-	}
-
-	private static Function<FeatureTypeLibrary, Iterable<FeatureType>> getFeatureTypes() {
-		return new Function<FeatureTypeLibrary, Iterable<FeatureType>>() {
-
-			public Iterable<FeatureType> apply(FeatureTypeLibrary from) {
-				return from.getTypes();
-			}
-		};
-	}
-
-	private static Function<LibraryDescriptor, FeatureTypeLibrary> getFeatureTypeLibrary() {
-		return new Function<LibraryExtensions.LibraryDescriptor, FeatureTypeLibrary>() {
-
-			public FeatureTypeLibrary apply(LibraryDescriptor from) {
-				return (FeatureTypeLibrary) new ResourceSetImpl()
-						.getResource(from.getURI(), true).getContents().get(0);
-			}
-		};
-	}
-
-	private static Function<FeatureConfiguration, FeatureType> getFeatureType() {
-		return new Function<FeatureConfiguration, FeatureType>() {
-			public FeatureType apply(FeatureConfiguration input) {
-				return input.getType();
-			}
-		};
-	}
-}
+/**
+ * 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.genmodel.validation;
+
+import static com.google.common.collect.Iterables.concat;
+import static com.google.common.collect.Iterables.filter;
+import static com.google.common.collect.Iterables.transform;
+
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.xtext.EcoreUtil2;
+import org.eclipse.xtext.validation.Check;
+import org.yakindu.base.base.NamedElement;
+import org.yakindu.sct.generator.core.extensions.GeneratorExtensions;
+import org.yakindu.sct.generator.core.extensions.GeneratorExtensions.GeneratorDescriptor;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions;
+import org.yakindu.sct.generator.core.extensions.LibraryExtensions.LibraryDescriptor;
+import org.yakindu.sct.generator.core.features.IDefaultFeatureValueProvider;
+import org.yakindu.sct.model.sgen.BoolLiteral;
+import org.yakindu.sct.model.sgen.DeprecatableElement;
+import org.yakindu.sct.model.sgen.FeatureConfiguration;
+import org.yakindu.sct.model.sgen.FeatureParameter;
+import org.yakindu.sct.model.sgen.FeatureParameterValue;
+import org.yakindu.sct.model.sgen.FeatureType;
+import org.yakindu.sct.model.sgen.FeatureTypeLibrary;
+import org.yakindu.sct.model.sgen.GeneratorEntry;
+import org.yakindu.sct.model.sgen.GeneratorModel;
+import org.yakindu.sct.model.sgen.IntLiteral;
+import org.yakindu.sct.model.sgen.Literal;
+import org.yakindu.sct.model.sgen.ParameterTypes;
+import org.yakindu.sct.model.sgen.RealLiteral;
+import org.yakindu.sct.model.sgen.SGenPackage;
+import org.yakindu.sct.model.sgen.StringLiteral;
+
+import com.google.common.base.Function;
+import com.google.common.base.Predicate;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+/**
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class SGenJavaValidator extends AbstractSGenJavaValidator {
+
+	// Error messages
+	public static final String MISSING_REQUIRED_PARAMETER = "Missing required Parameter";
+	public static final String MISSING_REQUIRED_FEATURE = "Missing required feature";
+	public static final String DUPLICATE_PARAMETER = "Duplicate parameter!";
+	public static final String DUPLICATE_FEATURE = "Duplicate feature!";
+	public static final String UNKOWN_GENERATOR = "Unkown Generator";
+	public static final String INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED = "Incompatible type, Boolean expected";
+	public static final String INCOMPATIBLE_TYPE_INTEGER_EXPECTED = "Incompatible type, Integer expected";
+	public static final String INCOMPATIBLE_TYPE_FLOAT_EXPECTED = "Incompatible type, Float expected";
+	public static final String INCOMPATIBLE_TYPE_STRING_EXPECTED = "Incompatible type, String expected";
+	public static final String UNKNOWN_CONTENT_TYPE = "Unknown content type '";
+	public static final String DEPRECATED = "Element is depricated";
+	// Failure codes
+	public static final String CODE_REQUIRED_FEATURE = "code_req_feature";
+
+	@Check
+	public void checkContentType(GeneratorEntry entry) {
+		GeneratorModel generatorModel = EcoreUtil2.getContainerOfType(entry,
+				GeneratorModel.class);
+		GeneratorDescriptor descriptor = GeneratorExtensions
+				.getGeneratorDescriptorForId(generatorModel.getGeneratorId());
+		if (descriptor == null)
+			return;
+		String contentType = entry.getContentType();
+		if (contentType == null || contentType.trim().length() == 0) {
+			return;
+		}
+		if (!contentType.equals(descriptor.getContentType())) {
+			error(UNKNOWN_CONTENT_TYPE + contentType + "'",
+					SGenPackage.Literals.GENERATOR_ENTRY__CONTENT_TYPE);
+		}
+	}
+
+	@Check
+	public void checkParameterValueType(
+			final FeatureParameterValue parameterValue) {
+		if (parameterValue == null || parameterValue.getExpression() == null)
+			return;
+		Literal value = parameterValue.getExpression();
+		ParameterTypes parameterType = parameterValue.getParameter()
+				.getParameterType();
+		switch (parameterType) {
+		case BOOLEAN:
+			if (!(value instanceof BoolLiteral))
+				error(INCOMPATIBLE_TYPE_BOOLEAN_EXPECTED,
+						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			break;
+		case INTEGER:
+			if (!(value instanceof IntLiteral))
+				error(INCOMPATIBLE_TYPE_INTEGER_EXPECTED,
+						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			break;
+		case FLOAT:
+			if (!(value instanceof RealLiteral))
+				error(INCOMPATIBLE_TYPE_FLOAT_EXPECTED,
+						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			break;
+		case STRING:
+			if (!(value instanceof StringLiteral))
+				error(INCOMPATIBLE_TYPE_STRING_EXPECTED,
+						SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			break;
+		}
+	}
+
+	@Check
+	public void checkParameterValue(final FeatureParameterValue value) {
+		if (value.getExpression() == null || value.getExpression() == null)
+			return;
+		GeneratorModel model = (GeneratorModel) EcoreUtil2
+				.getRootContainer(value);
+
+		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
+				.getGeneratorDescriptorForId(model.getGeneratorId());
+
+		IDefaultFeatureValueProvider provider = LibraryExtensions
+				.getDefaultFeatureValueProvider(
+						generatorDescriptor.getLibraryIDs(), value
+								.getParameter().getFeatureType().getLibrary());
+		IStatus status = provider.validateParameterValue(value);
+		createMarker(status);
+	}
+
+	private void createMarker(IStatus status) {
+		switch (status.getSeverity()) {
+		case IStatus.ERROR:
+			super.error(status.getMessage(),
+					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+			break;
+		case IStatus.WARNING:
+			super.warning(status.getMessage(),
+					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__EXPRESSION);
+		}
+	}
+
+	@Check
+	public void checkGeneratorExists(GeneratorModel model) {
+		GeneratorDescriptor descriptor = GeneratorExtensions
+				.getGeneratorDescriptorForId(model.getGeneratorId());
+		if (descriptor == null) {
+			error(String.format(UNKOWN_GENERATOR + " %s!",
+					model.getGeneratorId()),
+					SGenPackage.Literals.GENERATOR_MODEL__GENERATOR_ID);
+		}
+	}
+
+	@Check
+	public void checkDuplicateGeneratorEntryFeature(
+			final FeatureConfiguration config) {
+		GeneratorEntry entry = (GeneratorEntry) config.eContainer();
+		Iterable<FeatureConfiguration> filter = Iterables.filter(
+				entry.getFeatures(), new Predicate<FeatureConfiguration>() {
+					public boolean apply(FeatureConfiguration input) {
+						return (input.getType().getName().equals(config
+								.getType().getName()));
+					}
+				});
+		if (Iterables.size(filter) > 1) {
+			error(DUPLICATE_FEATURE,
+					SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
+		}
+
+	}
+
+	@Check
+	public void checkDuplicateFeatureParameter(final FeatureParameterValue value) {
+		FeatureConfiguration entry = (FeatureConfiguration) value.eContainer();
+		Iterable<FeatureParameterValue> filter = Iterables.filter(
+				entry.getParameterValues(),
+				new Predicate<FeatureParameterValue>() {
+					public boolean apply(FeatureParameterValue input) {
+						return (input.getParameter().getName().equals(value
+								.getParameter().getName()));
+					}
+				});
+		if (Iterables.size(filter) > 1) {
+			error(DUPLICATE_PARAMETER,
+					SGenPackage.Literals.FEATURE_PARAMETER_VALUE__PARAMETER);
+		}
+	}
+
+	@Check
+	public void checkRequiredFeatures(GeneratorEntry entry) {
+		GeneratorModel model = (GeneratorModel) EcoreUtil2
+				.getRootContainer(entry);
+
+		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
+				.getGeneratorDescriptorForId(model.getGeneratorId());
+
+		Iterable<LibraryDescriptor> libraryDescriptors = LibraryExtensions
+				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
+
+		Iterable<FeatureType> requiredFeatures = filter(
+				concat(transform(
+						transform(libraryDescriptors, getFeatureTypeLibrary()),
+						getFeatureTypes())), isRequired());
+		List<String> configuredTypes = Lists.newArrayList();
+		for (FeatureConfiguration featureConfiguration : entry.getFeatures()) {
+			configuredTypes.add(featureConfiguration.getType().getName());
+		}
+		for (FeatureType featureType : requiredFeatures) {
+			if (!configuredTypes.contains(featureType.getName()))
+				error(String.format(MISSING_REQUIRED_FEATURE + " %s",
+						featureType.getName()),
+						SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
+						CODE_REQUIRED_FEATURE, featureType.getName());
+		}
+	}
+
+	@Check
+	public void checkDeprecatedFeatures(GeneratorEntry entry) {
+		Iterable<FeatureConfiguration> features = entry.getFeatures();
+		Iterable<FeatureType> deprecatedFeatures = filter(
+				transform(features, getFeatureType()), isDeprecated());
+		for (FeatureType feature : deprecatedFeatures) {
+			warning(String.format(DEPRECATED + " %s : %s", feature.getName(),
+					feature.getComment()),
+					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
+					feature.getName());
+		}
+	}
+
+	@Check
+	public void checkRequiredParameters(FeatureConfiguration configuration) {
+		GeneratorModel model = (GeneratorModel) EcoreUtil2
+				.getRootContainer(configuration);
+
+		GeneratorDescriptor generatorDescriptor = GeneratorExtensions
+				.getGeneratorDescriptorForId(model.getGeneratorId());
+
+		Iterable<LibraryDescriptor> libraryDescriptors = LibraryExtensions
+				.getLibraryDescriptors(generatorDescriptor.getLibraryIDs());
+
+		Iterable<String> requiredParameters = transform(
+				filter(concat(transform(
+						filter(concat(transform(
+								transform(libraryDescriptors,
+										getFeatureTypeLibrary()),
+								getFeatureTypes())), hasName(configuration
+								.getType().getName())), getParmeter())),
+						isRequiredParamter()), getName());
+
+		List<String> configuredParameters = Lists.newArrayList();
+
+		for (FeatureParameterValue featureParameterValue : configuration
+				.getParameterValues()) {
+			configuredParameters.add(featureParameterValue.getParameter()
+					.getName());
+		}
+		for (String string : requiredParameters) {
+			if (!configuredParameters.contains(string))
+				error(String.format(MISSING_REQUIRED_PARAMETER + " %s", string),
+						SGenPackage.Literals.FEATURE_CONFIGURATION__TYPE);
+		}
+	}
+
+	@Check
+	public void checkDeprecatedParameters(GeneratorEntry entry) {
+		Iterable<FeatureParameter> deprecatedParameters = filter(
+				concat(transform(
+						transform(entry.getFeatures(), getFeatureType()),
+						getParmeter())), isDeprecated());
+		for (FeatureParameter parameter : deprecatedParameters) {
+			warning(String.format(DEPRECATED + " %s : %s", parameter.getName(),
+					parameter.getComment()),
+					SGenPackage.Literals.GENERATOR_ENTRY__ELEMENT_REF,
+					parameter.getName());
+		}
+	}
+
+	private Function<NamedElement, String> getName() {
+		return new Function<NamedElement, String>() {
+
+			public String apply(NamedElement from) {
+				return from.getName();
+			}
+		};
+	}
+
+	private Predicate<FeatureParameter> isRequiredParamter() {
+		return new Predicate<FeatureParameter>() {
+
+			public boolean apply(FeatureParameter input) {
+				return !input.isOptional();
+			}
+		};
+	}
+
+	private Predicate<DeprecatableElement> isDeprecated() {
+		return new Predicate<DeprecatableElement>() {
+			public boolean apply(DeprecatableElement input) {
+				return input.isDeprecated();
+			}
+		};
+	}
+
+	private Function<FeatureType, Iterable<FeatureParameter>> getParmeter() {
+		return new Function<FeatureType, Iterable<FeatureParameter>>() {
+
+			public Iterable<FeatureParameter> apply(FeatureType from) {
+				return from.getParameters();
+			}
+		};
+	}
+
+	private Predicate<NamedElement> hasName(final String name) {
+		return new Predicate<NamedElement>() {
+
+			public boolean apply(NamedElement input) {
+				if (name == null) {
+					return (input == null);
+				}
+				return name.equals(input.getName());
+			}
+		};
+	}
+
+	private static Predicate<FeatureType> isRequired() {
+		return new Predicate<FeatureType>() {
+
+			public boolean apply(FeatureType input) {
+				return !input.isOptional();
+			}
+		};
+	}
+
+	private static Function<FeatureTypeLibrary, Iterable<FeatureType>> getFeatureTypes() {
+		return new Function<FeatureTypeLibrary, Iterable<FeatureType>>() {
+
+			public Iterable<FeatureType> apply(FeatureTypeLibrary from) {
+				return from.getTypes();
+			}
+		};
+	}
+
+	private static Function<LibraryDescriptor, FeatureTypeLibrary> getFeatureTypeLibrary() {
+		return new Function<LibraryExtensions.LibraryDescriptor, FeatureTypeLibrary>() {
+
+			public FeatureTypeLibrary apply(LibraryDescriptor from) {
+				return (FeatureTypeLibrary) new ResourceSetImpl()
+						.getResource(from.getURI(), true).getContents().get(0);
+			}
+		};
+	}
+
+	private static Function<FeatureConfiguration, FeatureType> getFeatureType() {
+		return new Function<FeatureConfiguration, FeatureType>() {
+			public FeatureType apply(FeatureConfiguration input) {
+				return input.getType();
+			}
+		};
+	}
+}

+ 4 - 1
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/inferrer/STextTypeInferrer.java

@@ -82,7 +82,10 @@ public class STextTypeInferrer extends ExpressionsTypeInferrer {
 	}
 
 	public Object infer(EventRaisingExpression e) {
-		Type type1 = deresolve(e.getEvent()).getType();
+		EventDefinition event = deresolve(e.getEvent());
+		Type type1 = null;
+		if(event != null)
+			type1 = event.getType();
 		type1 = type1 != null ? type1 : getType(VOID);
 		if (e.getValue() == null) {
 			assertSame(type1, getType(VOID), String.format(MISSING_VALUE, type1));

+ 3 - 8
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/scoping/STextGlobalScopeProvider.java

@@ -74,21 +74,16 @@ public class STextGlobalScopeProvider extends DefaultGlobalScopeProvider {
 	}
 
 	/**
-	 * Filter all Elements that are part of an SCT file bug from another
-	 * resource...
-	 * 
-	 * @param context
-	 * @param parentScope
-	 * @return
+	 * Filter all Elements that are part of an SCT file from other resources to
+	 * avoid cross document referencing
 	 */
 	protected IScope filterExternalDeclarations(Resource context, IScope parentScope) {
 		final ContextElementAdapter provider = (ContextElementAdapter) EcoreUtil.getExistingAdapter(context,
 				ContextElementAdapter.class);
 		final URI resourceURI = provider != null ? provider.getElement().eResource().getURI() : context.getURI();
 		parentScope = new FilteringScope(parentScope, new Predicate<IEObjectDescription>() {
-
 			public boolean apply(IEObjectDescription input) {
-				if (input.getEObjectURI().fileExtension().equals(FILE_EXTENSION)) {
+				if (FILE_EXTENSION.equals(input.getEObjectURI().fileExtension())) {
 					URI sourceURI = input.getEObjectURI().trimFragment();
 					return sourceURI.equals(resourceURI);
 				}

+ 17 - 24
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/validation/STextJavaValidator.java

@@ -61,7 +61,6 @@ import org.yakindu.base.xtext.utils.jface.viewers.ContextElementAdapter;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.Exit;
-import org.yakindu.sct.model.sgraph.Reaction;
 import org.yakindu.sct.model.sgraph.ReactionProperty;
 import org.yakindu.sct.model.sgraph.Region;
 import org.yakindu.sct.model.sgraph.SGraphPackage;
@@ -75,7 +74,6 @@ import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
 import org.yakindu.sct.model.sgraph.validation.SCTResourceValidator;
 import org.yakindu.sct.model.sgraph.validation.SGraphJavaValidator;
-import org.yakindu.sct.model.stext.STextRuntimeModule;
 import org.yakindu.sct.model.stext.services.STextGrammarAccess;
 import org.yakindu.sct.model.stext.stext.DefaultTrigger;
 import org.yakindu.sct.model.stext.stext.EntryEvent;
@@ -96,15 +94,12 @@ import org.yakindu.sct.model.stext.stext.ReactionTrigger;
 import org.yakindu.sct.model.stext.stext.StextPackage;
 import org.yakindu.sct.model.stext.stext.TimeEventSpec;
 import org.yakindu.sct.model.stext.stext.VariableDefinition;
-import org.yakindu.sct.model.stext.stext.impl.StatechartSpecificationImpl;
 
 import com.google.common.base.Predicate;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
-import com.google.inject.Guice;
 import com.google.inject.Inject;
-import com.google.inject.Injector;
 import com.google.inject.name.Named;
 
 /**
@@ -211,7 +206,7 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 			}
 		} else if (varRef instanceof ElementReferenceExpression) {
 			EObject referencedObject = ((ElementReferenceExpression) varRef).getReference();
-			if (!(referencedObject instanceof Property) && !(referencedObject instanceof Property)) {
+			if (!(referencedObject instanceof Property)) {
 				error(LEFT_HAND_ASSIGNMENT, ExpressionsPackage.Literals.ASSIGNMENT_EXPRESSION__VAR_REF);
 			}
 
@@ -285,22 +280,21 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 				for (ElementReferenceExpression elementReference : allUsedElementReferences) {
 					if (elementReference.getReference().eContainer() instanceof InternalScope) {
 						if (elementReference.getReference() instanceof VariableDefinition) {
-							if (((VariableDefinition) elementReference.getReference()).getName().equals(
-									internalDeclaration.getName())
+							if (((VariableDefinition) elementReference.getReference()).getName()
+									.equals(internalDeclaration.getName())
 									&& internalDeclaration instanceof VariableDefinition) {
 								internalDeclarationUsed = true;
 								break;
 							}
 						} else if (elementReference.getReference() instanceof EventDefinition) {
 							if (((EventDefinition) elementReference.getReference()).getName().equals(
-									internalDeclaration.getName())
-									&& internalDeclaration instanceof EventDefinition) {
+									internalDeclaration.getName()) && internalDeclaration instanceof EventDefinition) {
 								internalDeclarationUsed = true;
 								break;
 							}
 						} else if (elementReference.getReference() instanceof OperationDefinition) {
-							if (((OperationDefinition) elementReference.getReference()).getName().equals(
-									internalDeclaration.getName())
+							if (((OperationDefinition) elementReference.getReference()).getName()
+									.equals(internalDeclaration.getName())
 									&& internalDeclaration instanceof OperationDefinition) {
 								internalDeclarationUsed = true;
 								break;
@@ -407,8 +401,8 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 						// Validate an exit point is continued on one transition
 						// only.
 						for (Transition t : state.getOutgoingTransitions()) {
-							if (transition != t
-									&& STextValidationModelUtils.isNamedExitTransition(t, exitPointSpec.getExitpoint())) {
+							if (transition != t && STextValidationModelUtils.isNamedExitTransition(t,
+									exitPointSpec.getExitpoint())) {
 								warning(TRANSITION_EXIT_SPEC_ON_MULTIPLE_SIBLINGS, transition, null, -1);
 							}
 						}
@@ -440,8 +434,8 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 	@Check(CheckType.FAST)
 	public void checkUnboundEntryPoints(final org.yakindu.sct.model.sgraph.State state) {
 		if (state.isComposite()) {
-			final List<Transition>[] transitions = STextValidationModelUtils.getEntrySpecSortedTransitions(state
-					.getIncomingTransitions());
+			final List<Transition>[] transitions = STextValidationModelUtils
+					.getEntrySpecSortedTransitions(state.getIncomingTransitions());
 			Map<Region, List<Entry>> regions = null;
 
 			// first list contains Transitions without entry spec
@@ -599,8 +593,8 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 				} else if (exp instanceof ElementReferenceExpression) {
 					checkElementReferenceEffect((ElementReferenceExpression) exp);
 				} else {
-					error("Action has no effect.", StextPackage.Literals.REACTION_EFFECT__ACTIONS, effect.getActions()
-							.indexOf(exp), FEATURE_CALL_HAS_NO_EFFECT);
+					error("Action has no effect.", StextPackage.Literals.REACTION_EFFECT__ACTIONS,
+							effect.getActions().indexOf(exp), FEATURE_CALL_HAS_NO_EFFECT);
 				}
 
 			}
@@ -697,10 +691,9 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 
 	protected boolean isDefault(Trigger trigger) {
 
-		return trigger == null
-				|| trigger instanceof DefaultTrigger
-				|| ((trigger instanceof ReactionTrigger) && ((ReactionTrigger) trigger).getTriggers().size() == 0 && ((ReactionTrigger) trigger)
-						.getGuard() == null);
+		return trigger == null || trigger instanceof DefaultTrigger
+				|| ((trigger instanceof ReactionTrigger) && ((ReactionTrigger) trigger).getTriggers().size() == 0
+						&& ((ReactionTrigger) trigger).getGuard() == null);
 	}
 
 	@Override
@@ -804,8 +797,8 @@ public class STextJavaValidator extends AbstractSTextJavaValidator implements ST
 	}
 
 	private Resource getResource(EObject context) {
-		final ContextElementAdapter provider = (ContextElementAdapter) EcoreUtil.getExistingAdapter(
-				context.eResource(), ContextElementAdapter.class);
+		final ContextElementAdapter provider = (ContextElementAdapter) EcoreUtil.getExistingAdapter(context.eResource(),
+				ContextElementAdapter.class);
 		if (provider == null) {
 			return context.eResource();
 		} else {

+ 15 - 15
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/DefaultTimingService.java

@@ -26,6 +26,21 @@ import org.yakindu.sct.simulation.core.sruntime.ExecutionContext;
  */
 public class DefaultTimingService implements ITimingService {
 
+	public static class TimeEventTask extends TimerTask {
+
+		private final ExecutionContext context;
+		private final String eventName;
+
+		public TimeEventTask(ExecutionContext context, String eventName) {
+			this.context = context;
+			this.eventName = eventName;
+		}
+
+		public void run() {
+			context.getEvent(eventName).setScheduled(true);
+		}
+	}
+
 	private Timer timer;
 
 	private Map<String, TimerTask> timerTasks;
@@ -50,21 +65,6 @@ public class DefaultTimingService implements ITimingService {
 		timerTask.cancel();
 	}
 
-	public class TimeEventTask extends TimerTask {
-
-		private final ExecutionContext context;
-		private final String eventName;
-
-		public TimeEventTask(ExecutionContext context, String eventName) {
-			this.context = context;
-			this.eventName = eventName;
-		}
-
-		public void run() {
-			context.getEvent(eventName).setScheduled(true);
-		}
-	}
-
 	public void pause() {
 		throw new RuntimeException("Implement me");
 	}