Forráskód Böngészése

Extended Sgen to use with SCTUnit

Andreas Mülder 12 éve
szülő
commit
562b2fec9d

+ 12 - 25
plugins/org.yakindu.sct.generator.core/src/org/yakindu/sct/generator/core/extensions/GeneratorExtensions.java

@@ -50,8 +50,7 @@ public class GeneratorExtensions {
 
 		public ISCTGenerator createGenerator() {
 			try {
-				return (ISCTGenerator) configElement
-						.createExecutableExtension(ATTRIBUTE_CLASS);
+				return (ISCTGenerator) configElement.createExecutableExtension(ATTRIBUTE_CLASS);
 			} catch (CoreException e) {
 				e.printStackTrace();
 			}
@@ -68,21 +67,15 @@ public class GeneratorExtensions {
 
 		public Image getImage() {
 			return null;
-			// TODO
-			// String iconPath = configElement.getAttribute(ATTRIBUTE_ICON);
-			// ImageDescriptor descriptor = ImageDescriptor.createFromFile(
-			// getClass(), iconPath);
-			// return descriptor.createImage();
 		}
 
 		public String getContentType() {
 			return configElement.getAttribute(ATTRIBUTE_CONTENT_TYPE);
 		}
 
-		public Class<?> getElementRefType() {
+		public String getElementRefType() {
 			try {
-				return Class.forName(configElement
-						.getAttribute(ATTRIBUTE_ELEMENT_REF_TYPE));
+				return configElement.getAttribute(ATTRIBUTE_ELEMENT_REF_TYPE);
 			} catch (Exception e) {
 				e.printStackTrace();
 				return null;
@@ -124,13 +117,10 @@ public class GeneratorExtensions {
 	}
 
 	public static Iterable<GeneratorDescriptor> getGeneratorDescriptors() {
-		IConfigurationElement[] configurationElements = Platform
-				.getExtensionRegistry().getConfigurationElementsFor(
-						EXTENSION_POINT_ID);
+		IConfigurationElement[] configurationElements = Platform.getExtensionRegistry().getConfigurationElementsFor(
+				EXTENSION_POINT_ID);
 		if (generatorDescriptors == null) {
-			generatorDescriptors = transform(
-					newArrayList(configurationElements),
-					new CreateGeneratorDescriptor());
+			generatorDescriptors = transform(newArrayList(configurationElements), new CreateGeneratorDescriptor());
 		}
 		return generatorDescriptors;
 	}
@@ -139,16 +129,13 @@ public class GeneratorExtensions {
 	 * returns the Generator Descriptor for the given generator id, or null, if
 	 * the id is unknown
 	 */
-	public static GeneratorDescriptor getGeneratorDescriptorForId(
-			final String generatorId) {
+	public static GeneratorDescriptor getGeneratorDescriptorForId(final String generatorId) {
 		try {
-			return Iterables.find(getGeneratorDescriptors(),
-					new Predicate<GeneratorDescriptor>() {
-						public boolean apply(GeneratorDescriptor input) {
-							return input != null && input.getId() != null
-									&& input.getId().equals(generatorId);
-						}
-					});
+			return Iterables.find(getGeneratorDescriptors(), new Predicate<GeneratorDescriptor>() {
+				public boolean apply(GeneratorDescriptor input) {
+					return input != null && input.getId() != null && input.getId().equals(generatorId);
+				}
+			});
 		} catch (NoSuchElementException ex) {
 			return null;
 		}

+ 36 - 53
plugins/org.yakindu.sct.generator.genmodel/src/org/yakindu/sct/generator/genmodel/scoping/SGenScopeProvider.java

@@ -64,81 +64,64 @@ public class SGenScopeProvider extends AbstractDeclarativeScopeProvider {
 		return super.getScope(context, reference);
 	}
 
-	protected IScope scope_GeneratorEntry_elementRef(final EObject context,
-			final EReference reference) {
-		GeneratorModel generatorModel = (GeneratorModel) EcoreUtil2
-				.getRootContainer(context);
+	protected IScope scope_GeneratorEntry_elementRef(final EObject context, final EReference reference) {
+		GeneratorModel generatorModel = (GeneratorModel) EcoreUtil2.getRootContainer(context);
 		String id = generatorModel.getGeneratorId();
-		final GeneratorDescriptor desc = GeneratorExtensions
-				.getGeneratorDescriptorForId(id);
+		final GeneratorDescriptor desc = GeneratorExtensions.getGeneratorDescriptorForId(id);
 		if (desc == null)
 			return IScope.NULLSCOPE;
-		final Class<?> elementRefType = desc.getElementRefType();
-		return new FilteringScope(getDelegate().getScope(context, reference),
-				new Predicate<IEObjectDescription>() {
-					public boolean apply(IEObjectDescription input) {
-						return elementRefType.isAssignableFrom(input
-								.getEClass().getInstanceClass());
-					}
-				});
+		final String elementRefType = desc.getElementRefType();
+		return new FilteringScope(getDelegate().getScope(context, reference), new Predicate<IEObjectDescription>() {
+			public boolean apply(IEObjectDescription input) {
+				return elementRefType.equals(input.getEClass().getInstanceClassName());
+			}
+		});
 	}
 
 	protected IScope scope_Parameter(final EObject context, EReference reference) {
 		IScope libraryScope = getLibraryScope(context.eResource());
-		return new FilteringScope(libraryScope,
-				new Predicate<IEObjectDescription>() {
-					public boolean apply(IEObjectDescription input) {
-						if (!input.getEClass().equals(
-								SGenPackage.Literals.FEATURE_PARAMETER)) {
-							return false;
-						}
-						// Only allow references to FeatureParameters defined by
-						// enclosing Feature
-						FeatureConfiguration configuration = EcoreUtil2
-								.getContainerOfType(context,
-										FeatureConfiguration.class);
-						if (configuration == null
-								|| configuration.getType() == null)
-							return false;
-						String featureName = configuration.getType().getName();
-						if (featureName == null) {
-							return false;
-						}
-						return featureName.equals(input
-								.getUserData(FeatureResourceDescription.FEATURE_CONTAINER));
+		return new FilteringScope(libraryScope, new Predicate<IEObjectDescription>() {
+			public boolean apply(IEObjectDescription input) {
+				if (!input.getEClass().equals(SGenPackage.Literals.FEATURE_PARAMETER)) {
+					return false;
+				}
+				// Only allow references to FeatureParameters defined by
+				// enclosing Feature
+				FeatureConfiguration configuration = EcoreUtil2.getContainerOfType(context, FeatureConfiguration.class);
+				if (configuration == null || configuration.getType() == null)
+					return false;
+				String featureName = configuration.getType().getName();
+				if (featureName == null) {
+					return false;
+				}
+				return featureName.equals(input.getUserData(FeatureResourceDescription.FEATURE_CONTAINER));
 
-					}
-				});
+			}
+		});
 	}
 
 	protected IScope scope_Type(EObject context, EReference reference) {
 		IScope libraryScope = getLibraryScope(context.eResource());
-		return new FilteringScope(libraryScope,
-				new Predicate<IEObjectDescription>() {
-					public boolean apply(IEObjectDescription input) {
-						return input.getEClass().equals(
-								SGenPackage.Literals.FEATURE_TYPE);
-					}
-				});
+		return new FilteringScope(libraryScope, new Predicate<IEObjectDescription>() {
+			public boolean apply(IEObjectDescription input) {
+				return input.getEClass().equals(SGenPackage.Literals.FEATURE_TYPE);
+			}
+		});
 	}
 
 	protected SimpleScope getLibraryScope(Resource resource) {
-		GeneratorModel generatorModel = (GeneratorModel) EcoreUtil
-				.getObjectByType(resource.getContents(),
-						SGenPackage.Literals.GENERATOR_MODEL);
+		GeneratorModel generatorModel = (GeneratorModel) EcoreUtil.getObjectByType(resource.getContents(),
+				SGenPackage.Literals.GENERATOR_MODEL);
 		Assert.isNotNull(generatorModel);
 		String generatorId = generatorModel.getGeneratorId();
 
 		Iterable<IEObjectDescription> allElements = Lists.newArrayList();
-		Iterable<LibraryDescriptor> libraryDescriptor = LibraryExtensions
-				.getLibraryDescriptor(generatorId);
+		Iterable<LibraryDescriptor> libraryDescriptor = LibraryExtensions.getLibraryDescriptor(generatorId);
 		for (LibraryDescriptor desc : libraryDescriptor) {
 			Resource library = resourceSet.getResource(desc.getURI(), true);
-			FeatureResourceDescription description = new FeatureResourceDescription(
-					library);
+			FeatureResourceDescription description = new FeatureResourceDescription(library);
 			injector.injectMembers(description);
-			allElements = Iterables.concat(allElements,
-					description.getExportedObjects());
+			allElements = Iterables.concat(allElements, description.getExportedObjects());
 		}
 		return new SimpleScope(allElements);
 	}