- Add the Codota plugin to your IDE and get smart completions
private void myMethod () {ArrayList a =
new ArrayList<String>()
new ArrayList()
new ArrayList<Object>()
- Smart code suggestions by Codota
}
/** * @see RuleTagFormat */ public NewRule addTags(String... list) { for (String tag : list) { RuleTagFormat.validate(tag); tags.add(tag); } return this; }
public static String validate(String tag) { if (!isValid(tag)) { throw new IllegalArgumentException(format("Tag '%s' is invalid. %s", tag, ERROR_MESSAGE_SUFFIX)); } return tag; }
private Set<String> parseTags(Map<String, Object> properties) { Set<String> result = new HashSet<>(); String tagsString = (String) properties.get(TAGS_PARAMETER); if (!Strings.isNullOrEmpty(tagsString)) { for (String tag : TAGS_SPLITTER.split(tagsString)) { RuleTagFormat.validate(tag); result.add(tag); } } return result; } }
public static Set<String> validate(Collection<String> tags) { Set<String> sanitizedTags = tags.stream() .filter(Objects::nonNull) .filter(tag -> !tag.isEmpty()) .map(tag -> tag.toLowerCase(ENGLISH)) .collect(toSet()); Set<String> invalidTags = sanitizedTags.stream() .filter(tag -> !isValid(tag)) .collect(toSet()); if (invalidTags.isEmpty()) { return sanitizedTags; } throw new IllegalArgumentException(format("Tags '%s' are invalid. %s", join(", ", invalidTags), ERROR_MESSAGE_SUFFIX)); }
/** * Validates tags and resolves conflicts between user and system tags. */ static boolean applyTags(RuleDto rule, Set<String> tags) { for (String tag : tags) { RuleTagFormat.validate(tag); } Set<String> initialTags = rule.getTags(); final Set<String> systemTags = rule.getSystemTags(); Set<String> withoutSystemTags = Sets.filter(tags, input -> input != null && !systemTags.contains(input)); rule.setTags(withoutSystemTags); return withoutSystemTags.size() != initialTags.size() || !withoutSystemTags.containsAll(initialTags); } }
@Test public void isValid() { assertThat(RuleTagFormat.isValid(null)).isFalse(); assertThat(RuleTagFormat.isValid("")).isFalse(); assertThat(RuleTagFormat.isValid(" ")).isFalse(); assertThat(RuleTagFormat.isValid("coding style")).isFalse(); assertThat(RuleTagFormat.isValid("Style")).isFalse(); assertThat(RuleTagFormat.isValid("sTyle")).isFalse(); assertThat(RuleTagFormat.isValid("@style")).isFalse(); assertThat(RuleTagFormat.isValid("style")).isTrue(); assertThat(RuleTagFormat.isValid("c++")).isTrue(); assertThat(RuleTagFormat.isValid("f#")).isTrue(); assertThat(RuleTagFormat.isValid("c++11")).isTrue(); assertThat(RuleTagFormat.isValid("c.d")).isTrue(); }
public boolean setTags(DefaultIssue issue, Collection<String> tags, IssueChangeContext context) { Set<String> newTags = RuleTagFormat.validate(tags); Set<String> oldTags = new HashSet<>(issue.tags()); if (!oldTags.equals(newTags)) { issue.setFieldChange(context, TAGS, oldTags.isEmpty() ? null : CHANGELOG_TAG_JOINER.join(oldTags), newTags.isEmpty() ? null : CHANGELOG_TAG_JOINER.join(newTags)); issue.setTags(newTags); issue.setUpdateDate(context.date()); issue.setChanged(true); issue.setSendNotifications(true); return true; } return false; }
public static void validate(String tag) { if (!isValid(tag)) { throw new IllegalArgumentException(String.format("Tag '%s' is invalid. Rule tags accept only the characters: a-z, 0-9, '+', '-', '#', '.'", tag)); } } }
@Test public void validate() { RuleTagFormat.validate("style"); // no error }
public static String validate(String tag) { if (!isValid(tag)) { throw new IllegalArgumentException(format("Tag '%s' is invalid. %s", tag, ERROR_MESSAGE_SUFFIX)); } return tag; }
@Test public void validate_and_sanitize_collection_of_tags() { assertThat(RuleTagFormat.validate(asList("style", "coding-style", ""))).containsExactly("coding-style", "style"); assertThat(RuleTagFormat.validate(asList("style", "coding-style", null))).containsExactly("coding-style", "style"); assertThat(RuleTagFormat.validate(asList("style", "style", null))).containsExactly("style"); assertThat(RuleTagFormat.validate(singletonList("Uppercase"))).containsExactly("uppercase"); assertThat(RuleTagFormat.validate(Collections.emptyList())).isEmpty(); }
public static Set<String> validate(Collection<String> tags) { Set<String> sanitizedTags = tags.stream() .filter(Objects::nonNull) .filter(tag -> !tag.isEmpty()) .map(tag -> tag.toLowerCase(ENGLISH)) .collect(toSet()); Set<String> invalidTags = sanitizedTags.stream() .filter(tag -> !isValid(tag)) .collect(toSet()); if (invalidTags.isEmpty()) { return sanitizedTags; } throw new IllegalArgumentException(format("Tags '%s' are invalid. %s", join(", ", invalidTags), ERROR_MESSAGE_SUFFIX)); }
@Test public void fail_to_validate_collection_of_tags() { try { RuleTagFormat.validate(asList("coding style", "Stylé", "valid")); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Tags 'coding style, stylé' are invalid. Rule tags accept only the characters: a-z, 0-9, '+', '-', '#', '.'"); } } }
@Test public void validate_and_fail() { try { RuleTagFormat.validate(" "); fail(); } catch (IllegalArgumentException e) { assertThat(e).hasMessage("Tag ' ' is invalid. Rule tags accept only the characters: a-z, 0-9, '+', '-', '#', '.'"); } }
/** * @see RuleTagFormat */ public NewRule addTags(String... list) { for (String tag : list) { RuleTagFormat.validate(tag); tags.add(tag); } return this; }
/** * @see RuleTagFormat */ public NewRule addTags(String... list) { for (String tag : list) { RuleTagFormat.validate(tag); tags.add(tag); } return this; }
private Set<String> parseTags(Map<String, Object> properties) { Set<String> result = new HashSet<>(); String tagsString = (String) properties.get(TAGS_PARAMETER); if (!Strings.isNullOrEmpty(tagsString)) { for (String tag : TAGS_SPLITTER.split(tagsString)) { RuleTagFormat.validate(tag); result.add(tag); } } return result; } }
/** * Validates tags and resolves conflicts between user and system tags. */ static boolean applyTags(RuleDto rule, Set<String> tags) { for (String tag : tags) { RuleTagFormat.validate(tag); } Set<String> initialTags = rule.getTags(); final Set<String> systemTags = rule.getSystemTags(); Set<String> withoutSystemTags = Sets.filter(tags, input -> input != null && !systemTags.contains(input)); rule.setTags(withoutSystemTags); return withoutSystemTags.size() != initialTags.size() || !withoutSystemTags.containsAll(initialTags); } }
public boolean setTags(DefaultIssue issue, Collection<String> tags, IssueChangeContext context) { Set<String> newTags = tags.stream() .filter(Objects::nonNull) .filter(tag -> !tag.isEmpty()) .map(tag -> RuleTagFormat.validate(tag.toLowerCase(Locale.ENGLISH))) .collect(MoreCollectors.toSet()); Set<String> oldTags = new HashSet<>(issue.tags()); if (!oldTags.equals(newTags)) { issue.setFieldChange(context, TAGS, oldTags.isEmpty() ? null : CHANGELOG_TAG_JOINER.join(oldTags), newTags.isEmpty() ? null : CHANGELOG_TAG_JOINER.join(newTags)); issue.setTags(newTags); issue.setUpdateDate(context.date()); issue.setChanged(true); issue.setSendNotifications(true); return true; } return false; }