Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,21 @@ public void testUnknownLanguageNotOk() throws Exception {
helper.assertError(model, CheckcfgPackage.Literals.CONFIGURED_LANGUAGE_VALIDATOR, IssueCodes.UNKNOWN_LANGUAGE);
}

@Test
public void testDuplicateLanguageNotOk() throws Exception {
final CheckConfiguration model = parser.parse("""
check configuration Test

for com.avaloq.tools.ddk.^check.TestLanguage {

}

for com.avaloq.tools.ddk.^check.TestLanguage {

}

""");
helper.assertError(model, CheckcfgPackage.Literals.CONFIGURED_LANGUAGE_VALIDATOR, IssueCodes.DUPLICATE_LANGUAGE_CONFIGURATION);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,36 @@ public void checkConfiguredLanguageExists(final ConfiguredLanguageValidator vali
}
}

/**
* Checks that within a Check Configuration all Configured Language Validators are unique, meaning that
* the same language can only be configured in one place.
*
* @param configuration
* the configuration
*/
@Check
public void checkConfiguredLanguageUnique(final CheckConfiguration configuration) {
if (configuration.getLanguageValidatorConfigurations().size() < 2) {
return;
}
Predicate<ConfiguredLanguageValidator> predicate = new Predicate<ConfiguredLanguageValidator>() {
@Override
public boolean apply(final ConfiguredLanguageValidator validator) {
return validator.getLanguage() != null;
}
};
Function<ConfiguredLanguageValidator, String> function = new Function<ConfiguredLanguageValidator, String>() {
@Override
public String apply(final ConfiguredLanguageValidator from) {
return from.getLanguage();
}
};
for (final ConfiguredLanguageValidator v : getDuplicates(predicate, function, configuration.getLanguageValidatorConfigurations())) {
error(Messages.CheckCfgJavaValidator_DUPLICATE_LANGUAGE_CONFIGURATION, v, CheckcfgPackage.Literals.CONFIGURED_LANGUAGE_VALIDATOR__LANGUAGE, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, IssueCodes.DUPLICATE_LANGUAGE_CONFIGURATION);
}

}

/**
* Checks that a Configured Check has unique Configured Parameters.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public final class IssueCodes {
public static final String DUPLICATE_CATALOG_CONFIGURATION = ISSUE_CODE_PREFIX + "duplicate_catalog_configuration";
public static final String DUPLICATE_CHECK_CONFIGURATION = ISSUE_CODE_PREFIX + "duplicate_check_configuration";
public static final String UNKNOWN_LANGUAGE = ISSUE_CODE_PREFIX + "unknown_language";
public static final String DUPLICATE_LANGUAGE_CONFIGURATION = ISSUE_CODE_PREFIX + "duplicate_language_configuration";
public static final String DUPLICATE_PARAMETER_CONFIGURATION = ISSUE_CODE_PREFIX + "duplicate_parameter_configuration";
public static final String SEVERITY_NOT_ALLOWED = ISSUE_CODE_PREFIX + "severity_not_allowed";
public static final String PARAMETER_VALUE_NOT_ALLOWED = ISSUE_CODE_PREFIX + "parameter_value_not_allowed";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ public class Messages extends NLS {
public static String CheckCfgJavaValidator_CONFIGURED_PARAM_EQUALS_DEFAULT;
public static String CheckCfgJavaValidator_DUPLICATE_CATALOG_CONFIGURATION;
public static String CheckCfgJavaValidator_DUPLICATE_CHECK_CONFIGURATION;
public static String CheckCfgJavaValidator_DUPLICATE_LANGUAGE_CONFIGURATION;
public static String CheckCfgJavaValidator_DUPLICATE_PARAMETER_CONFIGURATION;
public static String CheckCfgJavaValidator_SEVERITY_NOT_ALLOWED;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ CheckCfgJavaValidator_FINAL_CHECK_NOT_CONFIGURABLE=Final checks may not be confi
CheckCfgJavaValidator_CONFIGURED_PARAM_EQUALS_DEFAULT=Configured value for ''{0}'' equals default
CheckCfgJavaValidator_DUPLICATE_CATALOG_CONFIGURATION=Duplicate catalog configuration
CheckCfgJavaValidator_DUPLICATE_CHECK_CONFIGURATION=Duplicate check configuration
CheckCfgJavaValidator_DUPLICATE_LANGUAGE_CONFIGURATION=Duplicate language configuration
CheckCfgJavaValidator_DUPLICATE_PARAMETER_CONFIGURATION=Duplicate parameter configuration
CheckCfgJavaValidator_SEVERITY_NOT_ALLOWED=Configured severity is not allowed
Original file line number Diff line number Diff line change
Expand Up @@ -158,4 +158,5 @@ public void apply(final EObject element, final IModificationContext context) {
}
});
}

}