/** * Create a key from a string representation (see {@link #toString()}. An {@link IllegalArgumentException} is raised * if the format is not valid. */ public static ActiveRuleKey parse(String s) { Preconditions.checkArgument(s.split(":").length >= 3, "Bad format of activeRule key: " + s); int semiColonPos = s.indexOf(':'); String ruleProfileUuid = s.substring(0, semiColonPos); String ruleKey = s.substring(semiColonPos + 1); return new ActiveRuleKey(ruleProfileUuid, RuleKey.parse(ruleKey)); }
@CheckForNull public RuleKey templateKey() { String templateKey = getNullableField(RuleIndexDefinition.FIELD_RULE_TEMPLATE_KEY); return templateKey != null ? RuleKey.parse(templateKey) : null; }
public RuleKey key() { return RuleKey.parse(keyAsString()); }
@Override public void handle(Request request, Response response) { ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization(); RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY)); delete(key); }
@Test public void not_accept_bad_format() { try { RuleKey.parse("foo"); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Invalid rule key: foo"); } }
@Test public void parse_key_with_colons() { RuleKey key = RuleKey.parse("squid:Key:With:Some::Colons"); assertThat(key.repository()).isEqualTo("squid"); assertThat(key.rule()).isEqualTo("Key:With:Some::Colons"); }
@Test public void encode_and_decode_string() { RuleKey key = RuleKey.of("squid", "NullDeref"); String serialized = key.toString(); assertThat(serialized).isEqualTo("squid:NullDeref"); RuleKey parsed = RuleKey.parse(serialized); assertThat(parsed.repository()).isEqualTo("squid"); assertThat(parsed.rule()).isEqualTo("NullDeref"); assertThat(parsed.toString()).isEqualTo("squid:NullDeref"); }
private void verify(Consumer<TestRequest> requestPopulator, RuleDefinitionDto... expectedRules) { TestRequest request = ws.newRequest(); requestPopulator.accept(request); Rules.SearchResponse response = request .executeProtobuf(Rules.SearchResponse.class); assertThat(response.getP()).isEqualTo(1); RuleKey[] expectedRuleKeys = stream(expectedRules).map(RuleDefinitionDto::getKey).collect(MoreCollectors.toList()).toArray(new RuleKey[0]); assertThat(response.getRulesList()) .extracting(r -> RuleKey.parse(r.getKey())) .containsExactlyInAnyOrder(expectedRuleKeys); assertThat(response.getTotal()).isEqualTo(expectedRules.length); assertThat(response.getRulesCount()).isEqualTo(expectedRules.length); }
@Override public void handle(Request request, Response response) throws Exception { RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY)); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = ruleWsSupport.getOrganizationByKey(dbSession, request.param(PARAM_ORGANIZATION)); RuleDto rule = dbClient.ruleDao().selectByKey(dbSession, organization, key) .orElseThrow(() -> new NotFoundException(String.format("Rule not found: %s", key))); List<RuleDefinitionDto> templateRules = ofNullable(rule.getTemplateId()) .flatMap(templateId -> dbClient.ruleDao().selectDefinitionById(rule.getTemplateId(), dbSession)) .map(Collections::singletonList).orElseGet(Collections::emptyList); List<RuleParamDto> ruleParameters = dbClient.ruleDao().selectRuleParamsByRuleIds(dbSession, singletonList(rule.getId())); ShowResponse showResponse = buildResponse(dbSession, organization, request, new SearchAction.SearchResult() .setRules(singletonList(rule)) .setTemplateRules(templateRules) .setRuleParameters(ruleParameters) .setTotal(1L)); writeProtobuf(showResponse, request, response); } }
private RuleActivation readActivation(DbSession dbSession, Request request) { RuleKey ruleKey = RuleKey.parse(request.mandatoryParam(PARAM_RULE)); RuleDefinitionDto ruleDefinition = wsSupport.getRule(dbSession, ruleKey); boolean reset = Boolean.TRUE.equals(request.paramAsBoolean(PARAM_RESET)); if (reset) { return RuleActivation.createReset(ruleDefinition.getId()); } String severity = request.param(PARAM_SEVERITY); Map<String, String> params = null; String paramsAsString = request.param(PARAM_PARAMS); if (paramsAsString != null) { params = KeyValueFormat.parse(paramsAsString); } return RuleActivation.create(ruleDefinition.getId(), severity, params); }
@Override public void handle(Request request, Response response) throws Exception { RuleKey ruleKey = RuleKey.parse(request.mandatoryParam(PARAM_RULE)); String qualityProfileKey = request.mandatoryParam(PARAM_KEY); userSession.checkLoggedIn(); try (DbSession dbSession = dbClient.openSession(false)) { RuleDefinitionDto rule = wsSupport.getRule(dbSession, ruleKey); QProfileDto profile = wsSupport.getProfile(dbSession, QProfileReference.fromKey(qualityProfileKey)); OrganizationDto organization = wsSupport.getOrganization(dbSession, profile); wsSupport.checkCanEdit(dbSession, organization, profile); ruleActivator.deactivateAndCommit(dbSession, profile, singletonList(rule.getId())); } response.noContent(); } }
loadedRule.setRuleKey(RuleKey.parse(r.getKey())); loadedRule.setName(r.getName()); loadedRule.setSeverity(active.getSeverity()); loadedRule.setInternalKey(r.getInternalKey()); if (r.hasTemplateKey()) { RuleKey templateRuleKey = RuleKey.parse(r.getTemplateKey()); loadedRule.setTemplateRuleKey(templateRuleKey.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; }
private boolean warningIsRuleKey(String warning, RuleKey ruleKey) { try { return ruleKey.equals(RuleKey.parse(warning)); } catch (IllegalArgumentException e) { return false; } }
private static boolean isRuleKey(String rule, RuleKey ruleKey) { try { // format of the rules requires a repository: "repo:key" return ruleKey.equals(RuleKey.parse(rule)); } catch (IllegalArgumentException e) { return false; } }
private static boolean isRuleKey(String rule, RuleKey ruleKey) { try { // format of the rules requires a repository: "repo:key" return ruleKey.equals(RuleKey.parse(rule)); } catch (IllegalArgumentException e) { return false; } }
@CheckForNull public RuleKey templateKey() { String templateKey = getNullableField(RuleIndexDefinition.FIELD_RULE_TEMPLATE_KEY); return templateKey != null ? RuleKey.parse(templateKey) : null; }
public String nameForJS(String ruleKey) { String name = nameFromDB(RuleKey.parse(ruleKey)); return StringEscapeUtils.escapeJavaScript(name != null ? name : ruleKey); }
@Override public void handle(Request request, Response response) { ruleWsSupport.checkQProfileAdminPermissionOnDefaultOrganization(); RuleKey key = RuleKey.parse(request.mandatoryParam(PARAM_KEY)); delete(key); }