Loading de.ugoe.cs.swe.T3Q/config/t3q-tf160-latest-next-new-features.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ <!-- <settingRecursiveProcessing>true</settingRecursiveProcessing> --> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>false</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <!-- to be discarded if checkNoUninitialisedVariables is true. If list is empty, no restrictions --> <string>enumerated</string> Loading Loading @@ -204,6 +205,7 @@ <checkNoUnusedLocalDefinitions>true</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading Loading @@ -325,6 +327,7 @@ <checkNoUnusedLocalDefinitions>false</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading de.ugoe.cs.swe.T3Q/config/t3q-tf160-latest-next.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ <!-- <settingRecursiveProcessing>true</settingRecursiveProcessing> --> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>false</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <!-- to be discarded if checkNoUninitialisedVariables is true. If list is empty, no restrictions --> <string>enumerated</string> Loading Loading @@ -204,6 +205,7 @@ <checkNoUnusedLocalDefinitions>true</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading Loading @@ -325,6 +327,7 @@ <checkNoUnusedLocalDefinitions>false</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/CodeStyleValidator.xtend +60 −0 Original line number Diff line number Diff line Loading @@ -1204,6 +1204,66 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { return !found } @Check def checkNoZeroOrMultipleFieldsInUnionTemplates(TemplateDef template) { if (!activeProfile.checkNoZeroOrMultipleFieldsInUnionTemplates) return; if (template.base.type.ref !== null) { var expr = template.body.simple.expr if (expr instanceof FieldExpressionList) { var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { var referencedFields = new ArrayList<FieldReference>() referencedFields.addAll(expr.specs.map[it.fieldRef]) template.collectInheritedFieldSpecifications(referencedFields) if (referencedFields.size==0) { statistics.incrementCountStyle val message = "At lest one field shall be specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } else if (referencedFields.size>1) { statistics.incrementCountStyle val message = "More than one field specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } } } else if (expr instanceof ArrayOrMixedExpression) { if (expr.list === null) { statistics.incrementCountStyle val message = "At lest one field shall be specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } } } } @Check def checkNoUninitializedFieldsInTemplates(TemplateDef template) { //TODO: also for variables and parameters? other expressions? operations? -> only for declared templates for now Loading de.ugoe.cs.swe.TTCN3Configuration/src/de/ugoe/cs/swe/TTCN3Configuration/QualityCheckProfile.java +9 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ public class QualityCheckProfile extends ConfigurationProfile { private boolean checkNoUnusedLocalDefinitions = true; private boolean checkNoUninitializedFieldsInTemplates = true; private boolean checkNoUninitializedFieldsInTemplatesRecursion = false; private boolean checkNoZeroOrMultipleFieldsInUnionTemplates = false; private boolean checkNoUninitialisedVariables = true; private String[] checkNoUninitialisedVariablesExclude = {"enumerated", "union", "record", "record of", "set", "set of"}; private boolean checkNoLiterals = true; Loading Loading @@ -665,6 +666,14 @@ public class QualityCheckProfile extends ConfigurationProfile { this.jsonSchemaPath = jsonSchemaPath; } public boolean isCheckNoZeroOrMultipleFieldsInUnionTemplates() { return checkNoZeroOrMultipleFieldsInUnionTemplates; } public void setCheckNoZeroOrMultipleFieldsInUnionTemplates(boolean checkNoZeroOrMultipleFieldsInUnionTemplates) { this.checkNoZeroOrMultipleFieldsInUnionTemplates = checkNoZeroOrMultipleFieldsInUnionTemplates; } } Loading
de.ugoe.cs.swe.T3Q/config/t3q-tf160-latest-next-new-features.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ <!-- <settingRecursiveProcessing>true</settingRecursiveProcessing> --> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>false</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <!-- to be discarded if checkNoUninitialisedVariables is true. If list is empty, no restrictions --> <string>enumerated</string> Loading Loading @@ -204,6 +205,7 @@ <checkNoUnusedLocalDefinitions>true</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading Loading @@ -325,6 +327,7 @@ <checkNoUnusedLocalDefinitions>false</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>true</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroMultipleFieldsInUnionTemplates>false</checkNoZeroMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading
de.ugoe.cs.swe.T3Q/config/t3q-tf160-latest-next.xml +3 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ <!-- <settingRecursiveProcessing>true</settingRecursiveProcessing> --> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>false</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <!-- to be discarded if checkNoUninitialisedVariables is true. If list is empty, no restrictions --> <string>enumerated</string> Loading Loading @@ -204,6 +205,7 @@ <checkNoUnusedLocalDefinitions>true</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading Loading @@ -325,6 +327,7 @@ <checkNoUnusedLocalDefinitions>false</checkNoUnusedLocalDefinitions> <checkNoUninitializedFieldsInTemplates>false</checkNoUninitializedFieldsInTemplates> <checkNoUninitializedFieldsInTemplatesRecursion>false</checkNoUninitializedFieldsInTemplatesRecursion> <checkNoZeroOrMultipleFieldsInUnionTemplates>false</checkNoZeroOrMultipleFieldsInUnionTemplates> <checkNoUninitialisedVariables>true</checkNoUninitialisedVariables> <checkNoUninitialisedVariablesExclude> <string>enumerated</string> Loading
de.ugoe.cs.swe.TTCN3/src/de/ugoe/cs/swe/validation/CodeStyleValidator.xtend +60 −0 Original line number Diff line number Diff line Loading @@ -1204,6 +1204,66 @@ class CodeStyleValidator extends AbstractDeclarativeValidator { return !found } @Check def checkNoZeroOrMultipleFieldsInUnionTemplates(TemplateDef template) { if (!activeProfile.checkNoZeroOrMultipleFieldsInUnionTemplates) return; if (template.base.type.ref !== null) { var expr = template.body.simple.expr if (expr instanceof FieldExpressionList) { var type = getReferencedOrNestedTypeWithTail(template.base.type.ref) if (type instanceof NestedUnionDef || type instanceof UnionDefNamed) { var referencedFields = new ArrayList<FieldReference>() referencedFields.addAll(expr.specs.map[it.fieldRef]) template.collectInheritedFieldSpecifications(referencedFields) if (referencedFields.size==0) { statistics.incrementCountStyle val message = "At lest one field shall be specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } else if (referencedFields.size>1) { statistics.incrementCountStyle val message = "More than one field specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } } } else if (expr instanceof ArrayOrMixedExpression) { if (expr.list === null) { statistics.incrementCountStyle val message = "At lest one field shall be specified in union template \""+template.base.name+"\"!" val INode node = NodeModelUtils.getNode(expr) warning( message, null, MessageClass.STYLE.toString, node.startLine.toString, node.endLine.toString, //TODO: check number "6.19, " + MiscTools.getMethodName() ); } } } } @Check def checkNoUninitializedFieldsInTemplates(TemplateDef template) { //TODO: also for variables and parameters? other expressions? operations? -> only for declared templates for now Loading
de.ugoe.cs.swe.TTCN3Configuration/src/de/ugoe/cs/swe/TTCN3Configuration/QualityCheckProfile.java +9 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,7 @@ public class QualityCheckProfile extends ConfigurationProfile { private boolean checkNoUnusedLocalDefinitions = true; private boolean checkNoUninitializedFieldsInTemplates = true; private boolean checkNoUninitializedFieldsInTemplatesRecursion = false; private boolean checkNoZeroOrMultipleFieldsInUnionTemplates = false; private boolean checkNoUninitialisedVariables = true; private String[] checkNoUninitialisedVariablesExclude = {"enumerated", "union", "record", "record of", "set", "set of"}; private boolean checkNoLiterals = true; Loading Loading @@ -665,6 +666,14 @@ public class QualityCheckProfile extends ConfigurationProfile { this.jsonSchemaPath = jsonSchemaPath; } public boolean isCheckNoZeroOrMultipleFieldsInUnionTemplates() { return checkNoZeroOrMultipleFieldsInUnionTemplates; } public void setCheckNoZeroOrMultipleFieldsInUnionTemplates(boolean checkNoZeroOrMultipleFieldsInUnionTemplates) { this.checkNoZeroOrMultipleFieldsInUnionTemplates = checkNoZeroOrMultipleFieldsInUnionTemplates; } }