@CheckForNull public RuleStatus status() { return RuleStatus.valueOf(getField(RuleIndexDefinition.FIELD_RULE_STATUS)); }
String s = nodeValue(cursor); if (s != null) { status = RuleStatus.valueOf(s);
private static RulesDefinition.NewRule loadRule(RulesDefinition.NewExtendedRepository repo, Class clazz, org.sonar.check.Rule ruleAnnotation) { String ruleKey = StringUtils.defaultIfEmpty(ruleAnnotation.key(), clazz.getCanonicalName()); String ruleName = StringUtils.defaultIfEmpty(ruleAnnotation.name(), null); String description = StringUtils.defaultIfEmpty(ruleAnnotation.description(), null); RulesDefinition.NewRule rule = repo.createRule(ruleKey); rule.setName(ruleName).setHtmlDescription(description); rule.setSeverity(ruleAnnotation.priority().name()); rule.setTemplate(ruleAnnotation.cardinality() == Cardinality.MULTIPLE); rule.setStatus(RuleStatus.valueOf(ruleAnnotation.status())); rule.setTags(ruleAnnotation.tags()); List<Field> fields = FieldUtils2.getFields(clazz, true); for (Field field : fields) { loadParameters(rule, field); } return rule; }
@Override public void handle(Request request, Response response) throws Exception { ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization(); String customKey = request.mandatoryParam(PARAM_CUSTOM_KEY); try (DbSession dbSession = dbClient.openSession(false)) { try { NewCustomRule newRule = NewCustomRule.createForCustomRule(customKey, RuleKey.parse(request.mandatoryParam(PARAM_TEMPLATE_KEY))) .setName(request.mandatoryParam(PARAM_NAME)) .setMarkdownDescription(request.mandatoryParam(PARAM_DESCRIPTION)) .setSeverity(request.mandatoryParam(PARAM_SEVERITY)) .setStatus(RuleStatus.valueOf(request.mandatoryParam(PARAM_STATUS))) .setPreventReactivation(request.mandatoryParamAsBoolean(PARAM_PREVENT_REACTIVATION)); String params = request.param(PARAMS); if (!isNullOrEmpty(params)) { newRule.setParameters(KeyValueFormat.parse(params)); } ofNullable(request.param(PARAM_TYPE)).ifPresent(t -> newRule.setType(RuleType.valueOf(t))); writeResponse(dbSession, request, response, ruleCreator.create(dbSession, newRule)); } catch (ReactivationException e) { response.stream().setStatus(HTTP_CONFLICT); writeResponse(dbSession, request, response, e.ruleKey()); } } }
private RuleUpdate readRequest(DbSession dbSession, Request request, OrganizationDto organization) { RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY)); RuleUpdate update = createRuleUpdate(dbSession, key, organization); readTags(request, update); readMarkdownNote(request, update); readDebt(request, update); String name = request.param(PARAM_NAME); if (name != null) { update.setName(name); } String description = request.param(PARAM_DESCRIPTION); if (description != null) { update.setMarkdownDescription(description); } String severity = request.param(PARAM_SEVERITY); if (severity != null) { update.setSeverity(severity); } String status = request.param(PARAM_STATUS); if (status != null) { update.setStatus(RuleStatus.valueOf(status)); } String params = request.param(PARAMS); if (params != null) { update.setParameters(KeyValueFormat.parse(params)); } return update; }
newRule.setTemplate(rule.isTemplate()); newRule.setSeverity(rule.getSeverity().toString()); newRule.setStatus(rule.getStatus() == null ? RuleStatus.defaultStatus() : RuleStatus.valueOf(rule.getStatus())); newRule.setTags(rule.getTags()); for (RuleParam param : rule.getParams()) {
@CheckForNull public RuleStatus status() { return RuleStatus.valueOf(getField(RuleIndexDefinition.FIELD_RULE_STATUS)); }
private void addMetadata(NewRule rule, String metadataKey) { String json = readRuleDefinitionResource(metadataKey + ".json"); if (json != null) { RuleMetadata metadata = gson.fromJson(json, RuleMetadata.class); rule.setSeverity(metadata.defaultSeverity.toUpperCase(Locale.US)); rule.setName(metadata.title); rule.setTags(metadata.tags); rule.setStatus(RuleStatus.valueOf(metadata.status.toUpperCase(Locale.US))); if (metadata.remediation != null) { // metadata.remediation is null for template rules rule.setDebtRemediationFunction(metadata.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setGapDescription(metadata.remediation.linearDesc); } } }
/** * Adds checks necessary information from JSON file. * * @param rule the new rule to add the information. * @param metadataKey rule key. */ private void addMetadata(NewRule rule, String metadataKey) { URL resource = ExternalDescriptionLoader.class.getResource(String.format("%s/%s.json", RESOURCE_BASE_PATH, metadataKey)); if (resource != null) { RuleMetatada metadata = gson.fromJson(readResource(resource), RuleMetatada.class); rule.setName(metadata.title); rule.setSeverity(metadata.defaultSeverity.toUpperCase()); rule.addTags(metadata.tags); rule.setStatus(RuleStatus.valueOf(metadata.status.toUpperCase())); rule.setDebtSubCharacteristic(metadata.sqaleSubCharacteristic); if (metadata.remediation != null) { rule.setDebtRemediationFunction(metadata.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setEffortToFixDescription(metadata.remediation.linearDesc); } } }
private void addMetadata(NewRule rule, String metadataKey) { URL resource = SonarDefinition.class.getResource(RESOURCE_BASE_PATH + "/" + metadataKey + "_java.json"); if (resource != null) { RuleMetatada metatada = gson.fromJson(readResource(resource), RuleMetatada.class); rule.setSeverity(metatada.defaultSeverity.toUpperCase(Locale.US)); rule.setName(metatada.title); rule.addTags(metatada.tags); rule.setType(RuleType.valueOf(metatada.type)); rule.setStatus(RuleStatus.valueOf(metatada.status.toUpperCase(Locale.US))); if (metatada.remediation != null) { rule.setDebtRemediationFunction(metatada.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setGapDescription(metatada.remediation.linearDesc); } } }
private void addMetadata(NewRule rule, String metadataKey) { URL resource = MyJavaRulesDefinition.class.getResource(RESOURCE_BASE_PATH + "/" + metadataKey + "_java.json"); if (resource != null) { RuleMetatada metatada = gson.fromJson(readResource(resource), RuleMetatada.class); rule.setSeverity(metatada.defaultSeverity.toUpperCase(Locale.US)); rule.setName(metatada.title); rule.addTags(metatada.tags); rule.setType(RuleType.valueOf(metatada.type)); rule.setStatus(RuleStatus.valueOf(metatada.status.toUpperCase(Locale.US))); if (metatada.remediation != null) { rule.setDebtRemediationFunction(metatada.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setGapDescription(metatada.remediation.linearDesc); } } }
private void addMetadata(final NewRule rule, final String metadataKey) { final String json = readRuleDefinitionResource(metadataKey + ".json"); if (json != null) { final RuleMetadata metadata = this.gson.fromJson(json, RuleMetadata.class); rule.setSeverity(metadata.defaultSeverity.toUpperCase(Locale.US)); rule.setName(metadata.title); rule.setTags(metadata.tags); rule.setStatus(RuleStatus.valueOf(metadata.status.toUpperCase(Locale.US))); rule.setType(RuleType.valueOf(metadata.type)); if (metadata.remediation != null) { // metadata.remediation is null for template rules rule.setDebtRemediationFunction(metadata.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setGapDescription(metadata.remediation.linearDesc); } } }
private void addMetadata(NewRule rule, @Nullable RuleMetadata metadata) { if (metadata == null) { return; } rule.setSeverity(metadata.defaultSeverity.toUpperCase(Locale.US)); rule.setName(metadata.title); rule.addTags(metadata.tags); if (metadata.isSecurityHotspot() && !supportsSecurityHotspots) { rule.setType(RuleType.VULNERABILITY); } else { rule.setType(RuleType.valueOf(metadata.type)); } rule.setStatus(RuleStatus.valueOf(metadata.status.toUpperCase(Locale.US))); if (metadata.remediation != null) { rule.setDebtRemediationFunction(metadata.remediation.remediationFunction(rule.debtRemediationFunctions())); rule.setGapDescription(metadata.remediation.linearDesc); } if (supportsSecurityHotspots) { addSecurityStandards(rule, metadata.securityStandards); } }
private void setMetadataFromJson(NewRule rule) { Map<String, Object> ruleMetadata = getMetadata(rule.key()); rule.setName(getString(ruleMetadata, "title")); rule.setSeverity(getUpperCaseString(ruleMetadata, "defaultSeverity")); String type = getUpperCaseString(ruleMetadata, "type"); if (isSecurityHotspot(ruleMetadata) && !supportsSecurityHotspots) { rule.setType(RuleType.VULNERABILITY); } else { rule.setType(RuleType.valueOf(type)); } rule.setStatus(RuleStatus.valueOf(getUpperCaseString(ruleMetadata, "status"))); rule.setTags(getStringArray(ruleMetadata, "tags")); Object remediation = ruleMetadata.get("remediation"); if (remediation != null) { setRemediationFromJson(rule, (Map<String, Object>) remediation); } Object securityStandards = ruleMetadata.get("securityStandards"); if (securityStandards != null && supportsSecurityHotspots) { setSecurityStandardsFromJson(rule, (Map<String, Object>) securityStandards); } }
private RulesDefinition.NewRule createRule(RulesDefinition.NewExtendedRepository repo, Class clazz, Rule ruleAnnotation) { String ruleKey = StringUtils.defaultIfEmpty(ruleAnnotation.key(), clazz.getCanonicalName()); String ruleName = StringUtils.defaultIfEmpty(ruleAnnotation.name(), null); String description = StringUtils.defaultIfEmpty(loadDescription(ruleKey), "No description yet."); RulesDefinition.NewRule rule = repo.createRule(ruleKey); rule.setName(ruleName).setMarkdownDescription(description); rule.setSeverity(ruleAnnotation.priority().name()); rule.setStatus(RuleStatus.valueOf(ruleAnnotation.status())); rule.setTags(ruleAnnotation.tags()); setMetadata(rule, clazz); List<Field> fields = FieldUtils2.getFields(clazz, true); for (Field field : fields) { loadParameters(rule, field); } return rule; }
private RulesDefinition.NewRule loadRule(RulesDefinition.NewExtendedRepository repo, Class clazz, org.sonar.check.Rule ruleAnnotation) { String ruleKey = StringUtils.defaultIfEmpty(ruleAnnotation.key(), clazz.getCanonicalName()); String ruleName = StringUtils.defaultIfEmpty(ruleAnnotation.name(), null); String description = StringUtils.defaultIfEmpty(ruleAnnotation.description(), null); RulesDefinition.NewRule rule = repo.createRule(ruleKey); rule.setName(ruleName).setHtmlDescription(description); rule.setSeverity(ruleAnnotation.priority().name()); rule.setTemplate(ruleAnnotation.cardinality() == Cardinality.MULTIPLE); rule.setStatus(RuleStatus.valueOf(ruleAnnotation.status())); rule.setTags(ruleAnnotation.tags()); List<Field> fields = FieldUtils2.getFields(clazz, true); for (Field field : fields) { loadParameters(rule, field); } return rule; }
private static RulesDefinition.NewRule loadRule(RulesDefinition.NewExtendedRepository repo, Class clazz, org.sonar.check.Rule ruleAnnotation) { String ruleKey = StringUtils.defaultIfEmpty(ruleAnnotation.key(), clazz.getCanonicalName()); String ruleName = StringUtils.defaultIfEmpty(ruleAnnotation.name(), null); String description = StringUtils.defaultIfEmpty(ruleAnnotation.description(), null); RulesDefinition.NewRule rule = repo.createRule(ruleKey); rule.setName(ruleName).setHtmlDescription(description); rule.setSeverity(ruleAnnotation.priority().name()); rule.setTemplate(ruleAnnotation.cardinality() == Cardinality.MULTIPLE); rule.setStatus(RuleStatus.valueOf(ruleAnnotation.status())); rule.setTags(ruleAnnotation.tags()); List<Field> fields = FieldUtils2.getFields(clazz, true); for (Field field : fields) { loadParameters(rule, field); } return rule; }
private RuleUpdate readRequest(DbSession dbSession, Request request, OrganizationDto organization) { RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY)); RuleUpdate update = createRuleUpdate(dbSession, key, organization); readTags(request, update); readMarkdownNote(request, update); readDebt(request, update); String name = request.param(PARAM_NAME); if (name != null) { update.setName(name); } String description = request.param(PARAM_DESCRIPTION); if (description != null) { update.setMarkdownDescription(description); } String severity = request.param(PARAM_SEVERITY); if (severity != null) { update.setSeverity(severity); } String status = request.param(PARAM_STATUS); if (status != null) { update.setStatus(RuleStatus.valueOf(status)); } String params = request.param(PARAMS); if (params != null) { update.setParameters(KeyValueFormat.parse(params)); } return update; }
@Override public void handle(Request request, Response response) throws Exception { ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization(); String customKey = request.mandatoryParam(PARAM_CUSTOM_KEY); try (DbSession dbSession = dbClient.openSession(false)) { try { NewCustomRule newRule = NewCustomRule.createForCustomRule(customKey, RuleKey.parse(request.mandatoryParam(PARAM_TEMPLATE_KEY))) .setName(request.mandatoryParam(PARAM_NAME)) .setMarkdownDescription(request.mandatoryParam(PARAM_DESCRIPTION)) .setSeverity(request.mandatoryParam(PARAM_SEVERITY)) .setStatus(RuleStatus.valueOf(request.mandatoryParam(PARAM_STATUS))) .setPreventReactivation(request.mandatoryParamAsBoolean(PARAM_PREVENT_REACTIVATION)); String params = request.param(PARAMS); if (!isNullOrEmpty(params)) { newRule.setParameters(KeyValueFormat.parse(params)); } setNullable(request.param(PARAM_TYPE), t -> newRule.setType(RuleType.valueOf(t))); writeResponse(dbSession, request, response, ruleCreator.create(dbSession, newRule)); } catch (ReactivationException e) { response.stream().setStatus(HTTP_CONFLICT); writeResponse(dbSession, request, response, e.ruleKey()); } } }
newRule.setTemplate(rule.isTemplate()); newRule.setSeverity(rule.getSeverity().toString()); newRule.setStatus(rule.getStatus() == null ? RuleStatus.defaultStatus() : RuleStatus.valueOf(rule.getStatus())); newRule.setTags(rule.getTags()); for (RuleParam param : rule.getParams()) {