Добавил новые методы в Assert и Strings
This commit is contained in:
parent
143109cca8
commit
5d23f56825
@ -1,7 +1,5 @@
|
||||
package dev.struchkov.haiti.utils;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||
@ -13,7 +11,7 @@ import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||
*/
|
||||
public final class Assert {
|
||||
|
||||
public Assert() {
|
||||
private Assert() {
|
||||
utilityClass();
|
||||
}
|
||||
|
||||
@ -29,9 +27,17 @@ public final class Assert {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Проверяет множество объектов на null. Если хотябы один объект null, то будет выброшено исключение
|
||||
*
|
||||
* @param exception исключение, которое необходимо выбросить
|
||||
* @param objects проверяемое множество объектов
|
||||
*/
|
||||
public static void isAnyNotNull(Supplier<? extends RuntimeException> exception, Object... objects) {
|
||||
if (Arrays.stream(objects).allMatch(Objects::isNull)) {
|
||||
throw exception.get();
|
||||
for (Object object : objects) {
|
||||
if (object == null) {
|
||||
throw exception.get();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,9 @@
|
||||
package dev.struchkov.haiti.utils;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||
|
||||
/**
|
||||
@ -9,12 +13,55 @@ import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||
*/
|
||||
public final class Strings {
|
||||
|
||||
private static final Set<Character> MD_FORBIDDEN_SYMBOLS = Stream.of(
|
||||
'\\', '+', '`', '[', ']', '\"', '~', '*', '#', '=', '_', '>', '<'
|
||||
).collect(Collectors.toSet());
|
||||
|
||||
private Strings() {
|
||||
utilityClass();
|
||||
}
|
||||
|
||||
public static final String EMPTY = "";
|
||||
public static final String NEW_LINE = System.getProperty("line.separator");
|
||||
public static final String TWO_NEW_LINE = NEW_LINE + NEW_LINE;
|
||||
public static final String ERR_UTILITY_CLASS = "Нельзя создать объект утилитарного класса";
|
||||
public static final String ERR_OPERATION_NOT_SUPPORTED = "Операция не поддерживается";
|
||||
|
||||
/**
|
||||
* <p>Позволяет обрезать строку до нужного количества символов.</p>
|
||||
* <p>Если обрезание произошло, то добавляет в конец строки "..."</p>
|
||||
* <p>Если вместо строки передали null, то вернет null</p>
|
||||
*
|
||||
* @param string Строка, которую необходимо обрезать
|
||||
* @param length Нужное количество символов
|
||||
* @return Обрезанная до length количества символов строка
|
||||
*/
|
||||
public static String cutoff(String string, int length) {
|
||||
if (string != null) {
|
||||
return string.length() > length ? string.substring(0, length) + "..." : string;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Экранирует специальные символы Markdown.
|
||||
*
|
||||
* @param str Строка, в которой необходимо экранировать символы.
|
||||
* @return Строка с экранированными символами
|
||||
*/
|
||||
public static String escapeMarkdown(String str) {
|
||||
if (str != null) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
char c = str.charAt(i);
|
||||
if (MD_FORBIDDEN_SYMBOLS.contains(c)) {
|
||||
sb.append('\\');
|
||||
}
|
||||
sb.append(c);
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user