Добавил новые методы в Assert и Strings
This commit is contained in:
parent
143109cca8
commit
5d23f56825
@ -1,7 +1,5 @@
|
|||||||
package dev.struchkov.haiti.utils;
|
package dev.struchkov.haiti.utils;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
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 final class Assert {
|
||||||
|
|
||||||
public Assert() {
|
private Assert() {
|
||||||
utilityClass();
|
utilityClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,11 +27,19 @@ public final class Assert {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Проверяет множество объектов на null. Если хотябы один объект null, то будет выброшено исключение
|
||||||
|
*
|
||||||
|
* @param exception исключение, которое необходимо выбросить
|
||||||
|
* @param objects проверяемое множество объектов
|
||||||
|
*/
|
||||||
public static void isAnyNotNull(Supplier<? extends RuntimeException> exception, Object... objects) {
|
public static void isAnyNotNull(Supplier<? extends RuntimeException> exception, Object... objects) {
|
||||||
if (Arrays.stream(objects).allMatch(Objects::isNull)) {
|
for (Object object : objects) {
|
||||||
|
if (object == null) {
|
||||||
throw exception.get();
|
throw exception.get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Проверка на null значение с возвращением исключения, если объект null.
|
* Проверка на null значение с возвращением исключения, если объект null.
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
package dev.struchkov.haiti.utils;
|
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;
|
import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -9,12 +13,55 @@ import static dev.struchkov.haiti.utils.Exceptions.utilityClass;
|
|||||||
*/
|
*/
|
||||||
public final class Strings {
|
public final class Strings {
|
||||||
|
|
||||||
|
private static final Set<Character> MD_FORBIDDEN_SYMBOLS = Stream.of(
|
||||||
|
'\\', '+', '`', '[', ']', '\"', '~', '*', '#', '=', '_', '>', '<'
|
||||||
|
).collect(Collectors.toSet());
|
||||||
|
|
||||||
private Strings() {
|
private Strings() {
|
||||||
utilityClass();
|
utilityClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final String EMPTY = "";
|
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_UTILITY_CLASS = "Нельзя создать объект утилитарного класса";
|
||||||
public static final String ERR_OPERATION_NOT_SUPPORTED = "Операция не поддерживается";
|
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