refactor: улучшение качества кода

This commit is contained in:
Максименко Никита Владимирович
2026-09-23 14:41:05 +03:00
parent 6ac5bb7819
commit d5b54b3f5c
5 changed files with 17 additions and 5 deletions
@@ -27,7 +27,7 @@ import java.util.TreeMap;
* Файла нет — работают настройки по умолчанию, и сервис поднимается без него.
*/
@Component
public class SystemsConfig {
public final class SystemsConfig {
private static final Logger LOG = LoggerFactory.getLogger(SystemsConfig.class);
@@ -49,7 +49,7 @@ import java.util.concurrent.TimeUnit;
* библиотеке — это ровно тот класс проблем, из-за которого модели второй
* ступени понадобилась отдельная настройка сборки.
*/
public class AdaptiveConcurrencyLimiter {
public final class AdaptiveConcurrencyLimiter {
private static final long DEFAULT_ADJUST_WINDOW_NANOS = TimeUnit.MILLISECONDS.toNanos(20);
+5 -1
View File
@@ -16,6 +16,7 @@ import ru.pdguard.detect.PdTypes;
import ru.pdguard.detect.RuleRegistry;
import ru.pdguard.detect.Span;
import ru.pdguard.mask.MaskContext;
import ru.pdguard.mask.MaskMode;
import ru.pdguard.mask.Masker;
import java.util.ArrayList;
@@ -271,6 +272,9 @@ public class Pipeline {
/** Замаскированный текст вместе с таблицей обратной замены. */
public record Masked(String text, Map<String, String> restorations) {
public Masked {
restorations = Map.copyOf(restorations);
}
}
/**
@@ -283,7 +287,7 @@ public class Pipeline {
*/
public Masked maskWithRestorations(String text, SystemPolicy policy) {
SystemPolicy reversible = new SystemPolicy(policy.name(), policy.enabled(), policy.demask(),
ru.pdguard.mask.MaskMode.TOKEN, policy.types(), policy.requireCompanion(), policy.key());
MaskMode.TOKEN, policy.types(), policy.requireCompanion(), policy.key());
List<Span> spans = findPersonalData(text, reversible);
if (spans.isEmpty()) {
return new Masked(text, Map.of());
@@ -12,6 +12,8 @@ import java.util.Comparator;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Общие приёмы чтения словарей и внешних файлов.
@@ -24,6 +26,8 @@ import java.util.stream.Collectors;
*/
final class ResourceLoader {
private static final Logger LOG = LoggerFactory.getLogger(ResourceLoader.class);
private ResourceLoader() {
}
@@ -90,8 +94,7 @@ final class ResourceLoader {
}
} catch (IOException e) {
// Битый файл не должен ронять работу: остаётся прежнее значение.
java.util.logging.Logger.getLogger(ResourceLoader.class.getName())
.fine("Не удалось перечитать файл " + path + ": " + e.getMessage());
LOG.warn("Не удалось перечитать файл {}", path, e);
}
return state.current;
}
@@ -31,6 +31,11 @@ import java.util.regex.Pattern;
public record Rule(String type, Pattern pattern, int priority, List<Integer> groups,
Predicate<String> validator, Pattern veto, Pattern context, List<String> anchors) {
public Rule {
groups = List.copyOf(groups);
anchors = List.copyOf(anchors);
}
/**
* Флаги компиляции для всех правил.
*