Browse Source

Deleted StatechartResourceDescription, use DefaultResourceDescriptionStrategy instead

Andreas Mülder 12 years ago
parent
commit
6d7d7efd6e

+ 39 - 0
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/resource/provider/SCTResourceDescriptionStrategy.java

@@ -0,0 +1,39 @@
+/**
+ * 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.model.sgraph.resource.provider;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
+import org.eclipse.xtext.resource.IEObjectDescription;
+import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionStrategy;
+import org.eclipse.xtext.util.IAcceptor;
+import org.yakindu.sct.model.sgraph.Statechart;
+
+/**
+ * This implementation of {@link IDefaultResourceDescriptionStrategy} avoids the
+ * export of elements from GMF notation model.
+ * 
+ * @author andreas muelder - Initial contribution and API
+ * 
+ */
+public class SCTResourceDescriptionStrategy extends
+		DefaultResourceDescriptionStrategy {
+
+	@Override
+	public boolean createEObjectDescriptions(EObject eObject,
+			IAcceptor<IEObjectDescription> acceptor) {
+		if (EcoreUtil.getRootContainer(eObject) instanceof Statechart)
+			return super.createEObjectDescriptions(eObject, acceptor);
+		return false;
+	}
+
+}

+ 0 - 85
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/resource/provider/StatechartResourceDescription.java

@@ -1,85 +0,0 @@
-/**
- * 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.model.sgraph.resource.provider;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.EcoreUtil2;
-import org.eclipse.xtext.naming.IQualifiedNameProvider;
-import org.eclipse.xtext.naming.QualifiedName;
-import org.eclipse.xtext.resource.EObjectDescription;
-import org.eclipse.xtext.resource.IEObjectDescription;
-import org.eclipse.xtext.resource.IReferenceDescription;
-import org.eclipse.xtext.resource.IResourceDescription;
-import org.eclipse.xtext.resource.impl.AbstractResourceDescription;
-import org.yakindu.sct.model.sgraph.SGraphPackage;
-import org.yakindu.sct.model.sgraph.Statechart;
-
-import com.google.common.collect.Lists;
-import com.google.inject.Inject;
-
-/**
- * 
- * @author andreas muelder
- * 
- */
-public class StatechartResourceDescription extends AbstractResourceDescription
-		implements IResourceDescription {
-
-	private final Resource resource;
-
-	private final URI uri;
-
-	@Inject
-	private IQualifiedNameProvider qualifiedNameProvider;
-
-	public StatechartResourceDescription(Resource resource) {
-		this.resource = resource;
-		this.uri = getNormalizedURI(resource);
-	}
-
-	@Override
-	protected List<IEObjectDescription> computeExportedObjects() {
-		final Statechart statechart = (Statechart) EcoreUtil2.getObjectByType(
-				resource.getContents(), SGraphPackage.Literals.STATECHART);
-		Iterator<EObject> contents = statechart.eAllContents();
-		List<IEObjectDescription> result = Lists.newArrayList();
-		Map<String, String> userData = new HashMap<String, String>();
-		while (contents.hasNext()) {
-			EObject eObject = contents.next();
-			QualifiedName qualifiedName = qualifiedNameProvider.apply(eObject);
-			if (qualifiedName != null) {
-				result.add(new EObjectDescription(qualifiedName, eObject,
-						userData));
-			}
-		}
-		return result;
-	}
-
-	public URI getURI() {
-		return uri;
-	}
-
-	public Iterable<QualifiedName> getImportedNames() {
-		return Lists.newArrayList();
-	}
-
-	public Iterable<IReferenceDescription> getReferenceDescriptions() {
-		return Lists.newArrayList();
-	}
-
-}

+ 0 - 51
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/resource/provider/StatechartResourceProvider.java

@@ -1,51 +0,0 @@
-/**
- * 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.model.sgraph.resource.provider;
-
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.xtext.resource.IResourceDescription;
-import org.eclipse.xtext.resource.impl.DefaultResourceDescriptionManager;
-import org.eclipse.xtext.resource.impl.DefaultResourceServiceProvider;
-
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-
-/**
- * 
- * @author andreas muelder
- * 
- */
-public class StatechartResourceProvider extends DefaultResourceServiceProvider {
-
-	@Inject
-	private Injector injector;
-
-	@Override
-	public IResourceDescription.Manager getResourceDescriptionManager() {
-		DefaultResourceDescriptionManager defaultResourceDescriptionManager = new DefaultResourceDescriptionManager() {
-			public IResourceDescription getResourceDescription(Resource resource) {
-				StatechartResourceDescription description = new StatechartResourceDescription(
-						resource);
-				injector.injectMembers(description);
-				return description;
-			}
-		};
-		injector.injectMembers(defaultResourceDescriptionManager);
-		return defaultResourceDescriptionManager;
-	}
-
-	@Override
-	public boolean canHandle(URI uri) {
-		return uri.fileExtension().toLowerCase().equals("sct");
-	}
-
-}

+ 1 - 2
plugins/org.yakindu.sct.model.stext.resource/META-INF/MANIFEST.MF

@@ -17,5 +17,4 @@ Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Bundle-ActivationPolicy: lazy
 Bundle-ActivationPolicy: lazy
 Export-Package: org.yakindu.sct.model.stext.resource,
 Export-Package: org.yakindu.sct.model.stext.resource,
  org.yakindu.sct.model.stext.resource.factory,
  org.yakindu.sct.model.stext.resource.factory,
- org.yakindu.sct.model.stext.resource.impl,
- org.yakindu.sct.model.stext.resource.provider
+ org.yakindu.sct.model.stext.resource.impl

+ 1 - 1
plugins/org.yakindu.sct.model.stext.resource/plugin.xml

@@ -14,7 +14,7 @@
    <!-- Resource Provider -->
    <!-- Resource Provider -->
    <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
    <extension point="org.eclipse.xtext.extension_resourceServiceProvider">
         <resourceServiceProvider
         <resourceServiceProvider
-           class="org.yakindu.sct.model.stext.resource.factory.ExpressionsExecutableExtensionFactory:org.yakindu.sct.model.stext.resource.provider.StatechartResourceUIProvider"
+           class="org.yakindu.sct.model.stext.resource.factory.ExpressionsExecutableExtensionFactory:org.eclipse.xtext.ui.resource.generic.EmfResourceUIServiceProvider"
             uriExtension="sct">
             uriExtension="sct">
         </resourceServiceProvider>
         </resourceServiceProvider>
     </extension>
     </extension>

+ 0 - 31
plugins/org.yakindu.sct.model.stext.resource/src/org/yakindu/sct/model/stext/resource/provider/StatechartResourceUIProvider.java

@@ -1,31 +0,0 @@
-/**
- * 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.model.stext.resource.provider;
-
-import org.eclipse.xtext.ui.resource.DefaultResourceUIServiceProvider;
-import org.yakindu.sct.model.sgraph.resource.provider.StatechartResourceProvider;
-
-import com.google.inject.Inject;
-
-/**
- * 
- * @author benjamin.schwertfeger@itemis.de
- * 
- */
-public class StatechartResourceUIProvider extends
-		DefaultResourceUIServiceProvider {
-
-	@Inject
-	public StatechartResourceUIProvider(
-			StatechartResourceProvider runtimeDelegate) {
-		super(runtimeDelegate);
-	}
-}

+ 16 - 0
plugins/org.yakindu.sct.model.stext/src/org/yakindu/sct/model/stext/STextRuntimeModule.java

@@ -10,17 +10,23 @@
  */
  */
 package org.yakindu.sct.model.stext;
 package org.yakindu.sct.model.stext;
 
 
+import org.eclipse.xtext.Constants;
 import org.eclipse.xtext.linking.ILinker;
 import org.eclipse.xtext.linking.ILinker;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
 import org.eclipse.xtext.naming.IQualifiedNameProvider;
+import org.eclipse.xtext.resource.IDefaultResourceDescriptionStrategy;
 import org.yakindu.base.types.ITypeSystemAccess;
 import org.yakindu.base.types.ITypeSystemAccess;
 import org.yakindu.base.types.impl.BaseTypeSystemAccessImpl;
 import org.yakindu.base.types.impl.BaseTypeSystemAccessImpl;
 import org.yakindu.sct.model.sgraph.resource.SCTLinker;
 import org.yakindu.sct.model.sgraph.resource.SCTLinker;
+import org.yakindu.sct.model.sgraph.resource.provider.SCTResourceDescriptionStrategy;
 import org.yakindu.sct.model.stext.conversion.StextValueConverterService;
 import org.yakindu.sct.model.stext.conversion.StextValueConverterService;
 import org.yakindu.sct.model.stext.naming.StextNameProvider;
 import org.yakindu.sct.model.stext.naming.StextNameProvider;
 import org.yakindu.sct.model.stext.scoping.STextGlobalScopeProvider;
 import org.yakindu.sct.model.stext.scoping.STextGlobalScopeProvider;
 import org.yakindu.sct.model.stext.validation.ITypeInferrer;
 import org.yakindu.sct.model.stext.validation.ITypeInferrer;
 import org.yakindu.sct.model.stext.validation.TypeInferrer;
 import org.yakindu.sct.model.stext.validation.TypeInferrer;
 
 
+import com.google.inject.Binder;
+import com.google.inject.name.Names;
+
 /**
 /**
  * Use this class to register components to be used at runtime / without the
  * Use this class to register components to be used at runtime / without the
  * Equinox extension registry.
  * Equinox extension registry.
@@ -58,4 +64,14 @@ public class STextRuntimeModule extends
 		return TypeInferrer.class;
 		return TypeInferrer.class;
 	}
 	}
 
 
+	public Class<? extends IDefaultResourceDescriptionStrategy> bindIDefaultResourceDescriptionStrategy() {
+		return SCTResourceDescriptionStrategy.class;
+	}
+
+	public void configureFileExtensions(Binder binder) {
+		binder.bind(String.class)
+				.annotatedWith(Names.named(Constants.FILE_EXTENSIONS))
+				.toInstance("stext,sct");
+	}
+
 }
 }