From 3e05cb64d5f33d4dbeb74e6f5c21b851eba97528 Mon Sep 17 00:00:00 2001 From: serega6531 Date: Tue, 26 Nov 2019 11:40:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=BF=D0=BE=D0=BB=D0=B5=20=D1=82=D0=B8=D0=BF=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=82=D1=82=D0=B5=D1=80=D0=BD=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ru/serega6531/packmate/model/Pattern.java | 7 ++++--- ...{PatternType.java => PatternDirectionType.java} | 2 +- .../packmate/model/enums/PatternSearchType.java | 5 +++++ .../model/enums/SubscriptionMessageType.java | 2 -- .../packmate/repository/PatternRepository.java | 4 ++-- .../packmate/service/PatternService.java | 14 +++++++++----- 6 files changed, 21 insertions(+), 13 deletions(-) rename src/main/java/ru/serega6531/packmate/model/enums/{PatternType.java => PatternDirectionType.java} (66%) create mode 100644 src/main/java/ru/serega6531/packmate/model/enums/PatternSearchType.java diff --git a/src/main/java/ru/serega6531/packmate/model/Pattern.java b/src/main/java/ru/serega6531/packmate/model/Pattern.java index bbff213..612c777 100644 --- a/src/main/java/ru/serega6531/packmate/model/Pattern.java +++ b/src/main/java/ru/serega6531/packmate/model/Pattern.java @@ -4,7 +4,8 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.Data; import lombok.ToString; import org.hibernate.annotations.GenericGenerator; -import ru.serega6531.packmate.model.enums.PatternType; +import ru.serega6531.packmate.model.enums.PatternDirectionType; +import ru.serega6531.packmate.model.enums.PatternSearchType; import javax.persistence.*; import java.util.List; @@ -33,9 +34,9 @@ public class Pattern { private String color; // для вставки в css - private boolean isRegex; + private PatternSearchType searchType; - private PatternType type; + private PatternDirectionType directionType; @ManyToMany(mappedBy = "foundPatterns", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JsonIgnore diff --git a/src/main/java/ru/serega6531/packmate/model/enums/PatternType.java b/src/main/java/ru/serega6531/packmate/model/enums/PatternDirectionType.java similarity index 66% rename from src/main/java/ru/serega6531/packmate/model/enums/PatternType.java rename to src/main/java/ru/serega6531/packmate/model/enums/PatternDirectionType.java index 8a2e1f5..2c22c88 100644 --- a/src/main/java/ru/serega6531/packmate/model/enums/PatternType.java +++ b/src/main/java/ru/serega6531/packmate/model/enums/PatternDirectionType.java @@ -1,5 +1,5 @@ package ru.serega6531.packmate.model.enums; -public enum PatternType { +public enum PatternDirectionType { INPUT, OUTPUT, BOTH } diff --git a/src/main/java/ru/serega6531/packmate/model/enums/PatternSearchType.java b/src/main/java/ru/serega6531/packmate/model/enums/PatternSearchType.java new file mode 100644 index 0000000..b299e77 --- /dev/null +++ b/src/main/java/ru/serega6531/packmate/model/enums/PatternSearchType.java @@ -0,0 +1,5 @@ +package ru.serega6531.packmate.model.enums; + +public enum PatternSearchType { + REGEX, SUBSTRING, SUBBYTES +} diff --git a/src/main/java/ru/serega6531/packmate/model/enums/SubscriptionMessageType.java b/src/main/java/ru/serega6531/packmate/model/enums/SubscriptionMessageType.java index 62c286b..af46d09 100644 --- a/src/main/java/ru/serega6531/packmate/model/enums/SubscriptionMessageType.java +++ b/src/main/java/ru/serega6531/packmate/model/enums/SubscriptionMessageType.java @@ -1,7 +1,5 @@ package ru.serega6531.packmate.model.enums; public enum SubscriptionMessageType { - SAVE_SERVICE, SAVE_PATTERN, DELETE_SERVICE, DELETE_PATTERN, NEW_STREAM - } diff --git a/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java b/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java index bab2442..4cdf665 100644 --- a/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java +++ b/src/main/java/ru/serega6531/packmate/repository/PatternRepository.java @@ -2,12 +2,12 @@ package ru.serega6531.packmate.repository; import org.springframework.data.jpa.repository.JpaRepository; import ru.serega6531.packmate.model.Pattern; -import ru.serega6531.packmate.model.enums.PatternType; +import ru.serega6531.packmate.model.enums.PatternDirectionType; import java.util.List; public interface PatternRepository extends JpaRepository { - List findAllByTypeEqualsOrTypeEquals(PatternType type, PatternType both); + List findAllByTypeEqualsOrTypeEquals(PatternDirectionType type, PatternDirectionType both); } diff --git a/src/main/java/ru/serega6531/packmate/service/PatternService.java b/src/main/java/ru/serega6531/packmate/service/PatternService.java index 170ecef..ba003c1 100644 --- a/src/main/java/ru/serega6531/packmate/service/PatternService.java +++ b/src/main/java/ru/serega6531/packmate/service/PatternService.java @@ -8,8 +8,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import ru.serega6531.packmate.model.FoundPattern; import ru.serega6531.packmate.model.Pattern; -import ru.serega6531.packmate.model.enums.PatternType; +import ru.serega6531.packmate.model.enums.PatternDirectionType; import ru.serega6531.packmate.model.Stream; +import ru.serega6531.packmate.model.enums.PatternSearchType; import ru.serega6531.packmate.model.enums.SubscriptionMessageType; import ru.serega6531.packmate.model.pojo.SubscriptionMessage; import ru.serega6531.packmate.repository.PatternRepository; @@ -53,8 +54,8 @@ public class PatternService { String content = new String(bytes); return patterns.values().stream() - .filter(p -> p.getType() == (incoming ? PatternType.INPUT : PatternType.OUTPUT) - || p.getType() == PatternType.BOTH) + .filter(p -> p.getDirectionType() == (incoming ? PatternDirectionType.INPUT : PatternDirectionType.OUTPUT) + || p.getDirectionType() == PatternDirectionType.BOTH) .map(pattern -> match(pattern, content)) .flatMap(List::stream) .collect(Collectors.toSet()); @@ -63,7 +64,7 @@ public class PatternService { private List match(Pattern pattern, String content) { List found = new ArrayList<>(); - if (pattern.isRegex()) { + if (pattern.getSearchType() == PatternSearchType.REGEX) { final java.util.regex.Pattern regex = compilePattern(pattern); final Matcher matcher = regex.matcher(content); @@ -76,7 +77,7 @@ public class PatternService { } return found; - } else { + } else if (pattern.getSearchType() == PatternSearchType.SUBSTRING) { int startSearch = 0; final String value = pattern.getValue(); @@ -96,6 +97,9 @@ public class PatternService { startSearch = end + 1; } + } else { // SUBBYTES + // TODO + return found; } }