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 @Component
public class SystemsConfig { public final class SystemsConfig {
private static final Logger LOG = LoggerFactory.getLogger(SystemsConfig.class); 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); 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.RuleRegistry;
import ru.pdguard.detect.Span; import ru.pdguard.detect.Span;
import ru.pdguard.mask.MaskContext; import ru.pdguard.mask.MaskContext;
import ru.pdguard.mask.MaskMode;
import ru.pdguard.mask.Masker; import ru.pdguard.mask.Masker;
import java.util.ArrayList; import java.util.ArrayList;
@@ -271,6 +272,9 @@ public class Pipeline {
/** Замаскированный текст вместе с таблицей обратной замены. */ /** Замаскированный текст вместе с таблицей обратной замены. */
public record Masked(String text, Map<String, String> restorations) { 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) { public Masked maskWithRestorations(String text, SystemPolicy policy) {
SystemPolicy reversible = new SystemPolicy(policy.name(), policy.enabled(), policy.demask(), 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); List<Span> spans = findPersonalData(text, reversible);
if (spans.isEmpty()) { if (spans.isEmpty()) {
return new Masked(text, Map.of()); return new Masked(text, Map.of());
@@ -12,6 +12,8 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; 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 { final class ResourceLoader {
private static final Logger LOG = LoggerFactory.getLogger(ResourceLoader.class);
private ResourceLoader() { private ResourceLoader() {
} }
@@ -90,8 +94,7 @@ final class ResourceLoader {
} }
} catch (IOException e) { } catch (IOException e) {
// Битый файл не должен ронять работу: остаётся прежнее значение. // Битый файл не должен ронять работу: остаётся прежнее значение.
java.util.logging.Logger.getLogger(ResourceLoader.class.getName()) LOG.warn("Не удалось перечитать файл {}", path, e);
.fine("Не удалось перечитать файл " + path + ": " + e.getMessage());
} }
return state.current; return state.current;
} }
@@ -31,6 +31,11 @@ import java.util.regex.Pattern;
public record Rule(String type, Pattern pattern, int priority, List<Integer> groups, public record Rule(String type, Pattern pattern, int priority, List<Integer> groups,
Predicate<String> validator, Pattern veto, Pattern context, List<String> anchors) { Predicate<String> validator, Pattern veto, Pattern context, List<String> anchors) {
public Rule {
groups = List.copyOf(groups);
anchors = List.copyOf(anchors);
}
/** /**
* Флаги компиляции для всех правил. * Флаги компиляции для всех правил.
* *