Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/ModularizationValidator.xtend +17 −12 Original line number Diff line number Diff line Loading @@ -5,20 +5,19 @@ import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.common.MiscTools import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionInstance import de.ugoe.cs.swe.tTCN3.ImportDef import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.StartTCStatement import de.ugoe.cs.swe.tTCN3.StartTimerStatement import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TTCN3Package import de.ugoe.cs.swe.tTCN3.TimerInstance import de.ugoe.cs.swe.tTCN3.TypeDef import java.util.regex.Matcher import java.util.regex.Pattern import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer import org.eclipse.xtext.nodemodel.INode import org.eclipse.xtext.nodemodel.util.NodeModelUtils import org.eclipse.xtext.validation.AbstractDeclarativeValidator Loading Loading @@ -82,7 +81,7 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val INode node = NodeModelUtils.getNode(definition) warning( message, null, //TODO: EStructuralFeature null, MessageClass.MODULARIZATION.toString, node.startLine.toString, node.endLine.toString, Loading @@ -99,7 +98,7 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val INode node = NodeModelUtils.getNode(definition) warning( message, null, //TODO: EStructuralFeature null, MessageClass.MODULARIZATION.toString, node.startLine.toString, node.endLine.toString, Loading @@ -112,16 +111,22 @@ class ModularizationValidator extends AbstractDeclarativeValidator { } private def boolean functionStartBehavior(FunctionDef function, TTCN3Module module) { // TODO: use alternative for UsageCrossReferencer!!! val references = UsageCrossReferencer.find(function, module) for (r : references) { val startTC = r.EObject.findDesiredParent(StartTCStatement) val startTimer = r.EObject.findDesiredParent(StartTimerStatement) if (startTC != null || startTimer != null) { val nestedParameter = r.EObject.findDesiredParent(FunctionInstance) var timer = false if (startTimer != null && startTimer.ref.findDesiredParent(TimerInstance) != null) { timer = true } if (startTC != null || startTimer != null && !(nestedParameter != null || timer)) { return true } } return false } Loading Loading @@ -156,8 +161,8 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val Pattern typesAndValuesImportsLibNamesExcludedPattern = Pattern.compile( activeProfile.getTypesAndValuesImportsLibNamesExcludedRegExp()) val Matcher typesAndValuesImportsLibNamesExcludedMatcher = typesAndValuesImportsLibNamesExcludedPattern. matcher(module.name) val Matcher typesAndValuesImportsLibNamesExcludedMatcher = typesAndValuesImportsLibNamesExcludedPattern.matcher( module.name) if (!module.name.contains(ModuleContentHelper.TypesAndValuesModuleIDSubstring) || typesAndValuesImportsLibNamesExcludedMatcher.matches()) Loading Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/ModularizationValidator.xtend +17 −12 Original line number Diff line number Diff line Loading @@ -5,20 +5,19 @@ import de.ugoe.cs.swe.common.ConfigTools import de.ugoe.cs.swe.common.MiscTools import de.ugoe.cs.swe.common.logging.LoggingInterface.MessageClass import de.ugoe.cs.swe.tTCN3.FunctionDef import de.ugoe.cs.swe.tTCN3.FunctionInstance import de.ugoe.cs.swe.tTCN3.ImportDef import de.ugoe.cs.swe.tTCN3.ModuleDefinition import de.ugoe.cs.swe.tTCN3.StartTCStatement import de.ugoe.cs.swe.tTCN3.StartTimerStatement import de.ugoe.cs.swe.tTCN3.TTCN3Module import de.ugoe.cs.swe.tTCN3.TTCN3Package import de.ugoe.cs.swe.tTCN3.TimerInstance import de.ugoe.cs.swe.tTCN3.TypeDef import java.util.regex.Matcher import java.util.regex.Pattern import org.eclipse.emf.ecore.EObject import org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer import org.eclipse.xtext.nodemodel.INode import org.eclipse.xtext.nodemodel.util.NodeModelUtils import org.eclipse.xtext.validation.AbstractDeclarativeValidator Loading Loading @@ -82,7 +81,7 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val INode node = NodeModelUtils.getNode(definition) warning( message, null, //TODO: EStructuralFeature null, MessageClass.MODULARIZATION.toString, node.startLine.toString, node.endLine.toString, Loading @@ -99,7 +98,7 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val INode node = NodeModelUtils.getNode(definition) warning( message, null, //TODO: EStructuralFeature null, MessageClass.MODULARIZATION.toString, node.startLine.toString, node.endLine.toString, Loading @@ -112,16 +111,22 @@ class ModularizationValidator extends AbstractDeclarativeValidator { } private def boolean functionStartBehavior(FunctionDef function, TTCN3Module module) { // TODO: use alternative for UsageCrossReferencer!!! val references = UsageCrossReferencer.find(function, module) for (r : references) { val startTC = r.EObject.findDesiredParent(StartTCStatement) val startTimer = r.EObject.findDesiredParent(StartTimerStatement) if (startTC != null || startTimer != null) { val nestedParameter = r.EObject.findDesiredParent(FunctionInstance) var timer = false if (startTimer != null && startTimer.ref.findDesiredParent(TimerInstance) != null) { timer = true } if (startTC != null || startTimer != null && !(nestedParameter != null || timer)) { return true } } return false } Loading Loading @@ -156,8 +161,8 @@ class ModularizationValidator extends AbstractDeclarativeValidator { val Pattern typesAndValuesImportsLibNamesExcludedPattern = Pattern.compile( activeProfile.getTypesAndValuesImportsLibNamesExcludedRegExp()) val Matcher typesAndValuesImportsLibNamesExcludedMatcher = typesAndValuesImportsLibNamesExcludedPattern. matcher(module.name) val Matcher typesAndValuesImportsLibNamesExcludedMatcher = typesAndValuesImportsLibNamesExcludedPattern.matcher( module.name) if (!module.name.contains(ModuleContentHelper.TypesAndValuesModuleIDSubstring) || typesAndValuesImportsLibNamesExcludedMatcher.matches()) Loading