Просмотр исходного кода

Merged Validator changes from Bugfix_2_0_x to trunk

benjamin.schwertfeger@gmail.com 13 лет назад
Родитель
Сommit
ec9576ce48

+ 0 - 1
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/SGraphRuntimeModule.java

@@ -58,5 +58,4 @@ public class SGraphRuntimeModule extends AbstractGenericModule {
 						Names.named(ResourceDescriptionsProvider.LIVE_SCOPE))
 						Names.named(ResourceDescriptionsProvider.LIVE_SCOPE))
 				.to(ResourceSetBasedResourceDescriptions.class);
 				.to(ResourceSetBasedResourceDescriptions.class);
 	}
 	}
-
 }
 }

+ 13 - 12
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SCTResourceValidator.java

@@ -21,13 +21,22 @@ import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.CheckType;
 import org.eclipse.xtext.validation.CheckType;
+import org.eclipse.xtext.validation.EValidatorRegistrar;
 import org.yakindu.sct.model.sgraph.SpecificationElement;
 import org.yakindu.sct.model.sgraph.SpecificationElement;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.Statechart;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
 
 
+import com.google.inject.Inject;
+
 /**
 /**
+ * This validator is intended to be used by a compositeValidator (See
+ * {@link org.eclipse.xtext.validation.ComposedChecks}) of another language
+ * specific validator. It does not register itself as an EValidator.
+ * 
+ * It checks for resource errors in {@link AbstractSCTResource}s.
  * 
  * 
  * @author andreas muelder - Initial contribution and API
  * @author andreas muelder - Initial contribution and API
+ * @author benjamin schwertfeger
  * 
  * 
  */
  */
 public class SCTResourceValidator extends AbstractDeclarativeValidator {
 public class SCTResourceValidator extends AbstractDeclarativeValidator {
@@ -60,22 +69,14 @@ public class SCTResourceValidator extends AbstractDeclarativeValidator {
 		}
 		}
 	}
 	}
 
 
-	@Override
-	protected List<EPackage> getEPackages() {
-		List<EPackage> result = new ArrayList<EPackage>();
-		result.add(EPackage.Registry.INSTANCE
-				.getEPackage("http://www.yakindu.org/sct/sgraph/2.0.0"));
-		return result;
-	}
-
 	@Override
 	@Override
 	public boolean isLanguageSpecific() {
 	public boolean isLanguageSpecific() {
 		return false;
 		return false;
 	}
 	}
-
+	
 	@Override
 	@Override
-	protected boolean isResponsible(Map<Object, Object> context, EObject eObject) {
-		return true;
+	@Inject
+	public void register(EValidatorRegistrar registrar) {
+		//Do not register because this validator is only a composite #398987
 	}
 	}
-
 }
 }

+ 14 - 22
plugins/org.yakindu.sct.model.sgraph/src/org/yakindu/sct/model/sgraph/validation/SGraphJavaValidator.java

@@ -10,17 +10,13 @@
  */
  */
 package org.yakindu.sct.model.sgraph.validation;
 package org.yakindu.sct.model.sgraph.validation;
 
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.common.util.TreeIterator;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.emf.ecore.util.EcoreUtil;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.AbstractDeclarativeValidator;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.Check;
 import org.eclipse.xtext.validation.CheckType;
 import org.eclipse.xtext.validation.CheckType;
+import org.eclipse.xtext.validation.EValidatorRegistrar;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.Choice;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.Entry;
 import org.yakindu.sct.model.sgraph.EntryKind;
 import org.yakindu.sct.model.sgraph.EntryKind;
@@ -30,13 +26,20 @@ import org.yakindu.sct.model.sgraph.Transition;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.Vertex;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
 import org.yakindu.sct.model.sgraph.resource.AbstractSCTResource;
 
 
+import com.google.inject.Inject;
+
 /**
 /**
+ * This validator is intended to be used by a compositeValidator (See
+ * {@link org.eclipse.xtext.validation.ComposedChecks}) of another language
+ * specific validator. It does not register itself as an EValidator.
+ * 
+ * This validator checks for common graphical constraints for all kinds of state charts. 
  * 
  * 
  * @author terfloth
  * @author terfloth
  * @author muelder
  * @author muelder
  * @author bohl - migrated to xtext infrastruture
  * @author bohl - migrated to xtext infrastruture
+ * @author schwertfeger
  */
  */
-
 public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 
 
 	public static final String ISSUE_STATE_WITHOUT_NAME = "A state must have a name.";
 	public static final String ISSUE_STATE_WITHOUT_NAME = "A state must have a name.";
@@ -56,7 +59,8 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 			int incomingTransitions = 0;
 			int incomingTransitions = 0;
 			incomingTransitions += vertex.getIncomingTransitions().size();
 			incomingTransitions += vertex.getIncomingTransitions().size();
 
 
-			// in context of a state it is sufficient if a sub state is targeted by
+			// in context of a state it is sufficient if a sub state is targeted
+			// by
 			// an external transition
 			// an external transition
 			if (vertex instanceof org.yakindu.sct.model.sgraph.State) {
 			if (vertex instanceof org.yakindu.sct.model.sgraph.State) {
 				TreeIterator<EObject> eAllContents = vertex.eAllContents();
 				TreeIterator<EObject> eAllContents = vertex.eAllContents();
@@ -153,25 +157,13 @@ public class SGraphJavaValidator extends AbstractDeclarativeValidator {
 		}
 		}
 	}
 	}
 
 
-	@Override
-	protected List<EPackage> getEPackages() {
-		List<EPackage> result = new ArrayList<EPackage>();
-		result.add(EPackage.Registry.INSTANCE
-				.getEPackage("http://www.yakindu.org/sct/sgraph/2.0.0"));
-		result.add(EPackage.Registry.INSTANCE
-				.getEPackage("http://www.yakindu.org/base/base/2.0.0"));
-		result.add(EPackage.Registry.INSTANCE
-				.getEPackage("http://www.yakindu.org/base/types/2.0.0"));
-		return result;
-	}
-
 	@Override
 	@Override
 	public boolean isLanguageSpecific() {
 	public boolean isLanguageSpecific() {
 		return false;
 		return false;
 	}
 	}
 
 
-	@Override
-	protected boolean isResponsible(Map<Object, Object> context, EObject eObject) {
-		return true;
+	@Inject
+	public void register(EValidatorRegistrar registrar) {
+		// Do not register because this validator is only a composite #398987
 	}
 	}
 }
 }