You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2018/06/19 09:53:49 UTC
[3/8] james-project git commit: JAMES-2429 provide Targets as a
Stream of enum value
JAMES-2429 provide Targets as a Stream of enum value
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/380721c0
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/380721c0
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/380721c0
Branch: refs/heads/master
Commit: 380721c0c3b03a2d181e9d61c3332f7d94c958cb
Parents: 9c67375
Author: Matthieu Baechler <ma...@apache.org>
Authored: Thu Jun 14 15:42:52 2018 +0200
Committer: benwa <bt...@linagora.com>
Committed: Tue Jun 19 16:52:40 2018 +0700
----------------------------------------------------------------------
.../james/dlp/api/DLPConfigurationItem.java | 73 ++++++++++----------
.../james/dlp/api/DLPConfigurationItemTest.java | 6 ++
.../cassandra/DLPConfigurationItemDTO.java | 2 +-
3 files changed, 45 insertions(+), 36 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/380721c0/server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java b/server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java
index 75c1b7d..79d5e94 100644
--- a/server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java
+++ b/server/data/data-api/src/main/java/org/apache/james/dlp/api/DLPConfigurationItem.java
@@ -19,10 +19,12 @@
package org.apache.james.dlp.api;
+import java.util.EnumSet;
import java.util.Objects;
import java.util.Optional;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
+import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
@@ -72,51 +74,52 @@ public class DLPConfigurationItem {
}
public static class Builder {
- private static final boolean NOT_TARGETED = false;
- private Optional<Boolean> targetsSender;
- private Optional<Boolean> targetsRecipients;
- private Optional<Boolean> targetsContent;
+ private EnumSet<Targets.Type> targets;
private Optional<String> explanation;
private Optional<String> expression;
private Optional<Id> id;
public Builder() {
- targetsSender = Optional.empty();
- targetsRecipients = Optional.empty();
- targetsContent = Optional.empty();
+ targets = EnumSet.noneOf(Targets.Type.class);
explanation = Optional.empty();
expression = Optional.empty();
id = Optional.empty();
}
public Builder targetsSender() {
- this.targetsSender = Optional.of(true);
+ this.targets.add(Targets.Type.Sender);
return this;
}
public Builder targetsSender(boolean targetsSender) {
- this.targetsSender = Optional.of(targetsSender);
+ if (targetsSender) {
+ return targetsSender();
+ }
return this;
}
public Builder targetsRecipients() {
- this.targetsRecipients = Optional.of(true);
+ this.targets.add(Targets.Type.Recipient);
return this;
}
public Builder targetsRecipients(boolean targetsRecipients) {
- this.targetsRecipients = Optional.of(targetsRecipients);
+ if (targetsRecipients) {
+ return targetsRecipients();
+ }
return this;
}
public Builder targetsContent() {
- this.targetsContent = Optional.of(true);
+ this.targets.add(Targets.Type.Content);
return this;
}
public Builder targetsContent(boolean targetsContent) {
- this.targetsContent = Optional.of(targetsContent);
+ if (targetsContent) {
+ return targetsContent();
+ }
return this;
}
@@ -153,10 +156,7 @@ public class DLPConfigurationItem {
id.get(),
explanation,
ensureValidPattern(expression.get()),
- new Targets(
- targetsSender.orElse(NOT_TARGETED),
- targetsRecipients.orElse(NOT_TARGETED),
- targetsContent.orElse(NOT_TARGETED)));
+ new Targets(targets));
}
private Pattern ensureValidPattern(String input) {
@@ -174,26 +174,33 @@ public class DLPConfigurationItem {
}
public static class Targets {
- private final boolean senderTargeted;
- private final boolean recipientTargeted;
- private final boolean contentTargeted;
-
- public Targets(boolean senderTargeted, boolean recipientTargeted, boolean contentTargeted) {
- this.senderTargeted = senderTargeted;
- this.recipientTargeted = recipientTargeted;
- this.contentTargeted = contentTargeted;
+
+ public enum Type {
+ Sender,
+ Recipient,
+ Content
+ }
+
+ private final EnumSet<Type> targets;
+
+ private Targets(EnumSet<Type> targets) {
+ this.targets = targets;
}
public boolean isSenderTargeted() {
- return senderTargeted;
+ return targets.contains(Type.Sender);
}
public boolean isRecipientTargeted() {
- return recipientTargeted;
+ return targets.contains(Type.Recipient);
}
public boolean isContentTargeted() {
- return contentTargeted;
+ return targets.contains(Type.Content);
+ }
+
+ public Stream<Type> list() {
+ return targets.stream();
}
@Override
@@ -201,24 +208,20 @@ public class DLPConfigurationItem {
if (o instanceof Targets) {
Targets targets = (Targets) o;
- return Objects.equals(this.senderTargeted, targets.senderTargeted)
- && Objects.equals(this.recipientTargeted, targets.recipientTargeted)
- && Objects.equals(this.contentTargeted, targets.contentTargeted);
+ return Objects.equals(this.targets, targets.targets);
}
return false;
}
@Override
public final int hashCode() {
- return Objects.hash(senderTargeted, recipientTargeted, contentTargeted);
+ return Objects.hash(targets);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
- .add("senderTargeted", senderTargeted)
- .add("recipientTargeted", recipientTargeted)
- .add("contentTargeted", contentTargeted)
+ .add("targets", targets)
.toString();
}
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/380721c0/server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java b/server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java
index 8887568..e185d15 100644
--- a/server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java
+++ b/server/data/data-api/src/test/java/org/apache/james/dlp/api/DLPConfigurationItemTest.java
@@ -23,6 +23,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
+import org.apache.james.dlp.api.DLPConfigurationItem.Targets.Type;
import org.assertj.core.api.SoftAssertions;
import org.junit.jupiter.api.Test;
@@ -149,6 +150,7 @@ public class DLPConfigurationItemTest {
softly.assertThat(dlpConfigurationItem.getTargets().isContentTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isRecipientTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isSenderTargeted()).isFalse();
+ softly.assertThat(dlpConfigurationItem.getTargets().list()).isEmpty();
});
}
@@ -164,6 +166,7 @@ public class DLPConfigurationItemTest {
softly.assertThat(dlpConfigurationItem.getTargets().isContentTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isRecipientTargeted()).isTrue();
softly.assertThat(dlpConfigurationItem.getTargets().isSenderTargeted()).isFalse();
+ softly.assertThat(dlpConfigurationItem.getTargets().list()).contains(Type.Recipient);
});
}
@@ -179,6 +182,7 @@ public class DLPConfigurationItemTest {
softly.assertThat(dlpConfigurationItem.getTargets().isContentTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isRecipientTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isSenderTargeted()).isTrue();
+ softly.assertThat(dlpConfigurationItem.getTargets().list()).contains(Type.Sender);
});
}
@@ -194,6 +198,7 @@ public class DLPConfigurationItemTest {
softly.assertThat(dlpConfigurationItem.getTargets().isContentTargeted()).isTrue();
softly.assertThat(dlpConfigurationItem.getTargets().isRecipientTargeted()).isFalse();
softly.assertThat(dlpConfigurationItem.getTargets().isSenderTargeted()).isFalse();
+ softly.assertThat(dlpConfigurationItem.getTargets().list()).contains(Type.Content);
});
}
@@ -211,6 +216,7 @@ public class DLPConfigurationItemTest {
softly.assertThat(dlpConfigurationItem.getTargets().isContentTargeted()).isTrue();
softly.assertThat(dlpConfigurationItem.getTargets().isRecipientTargeted()).isTrue();
softly.assertThat(dlpConfigurationItem.getTargets().isSenderTargeted()).isTrue();
+ softly.assertThat(dlpConfigurationItem.getTargets().list()).contains(Type.Content, Type.Sender, Type.Recipient);
});
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/380721c0/server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java
----------------------------------------------------------------------
diff --git a/server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java b/server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java
index 02b6e4e..433e07f 100644
--- a/server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java
+++ b/server/data/data-cassandra/src/main/java/org/apache/james/dlp/eventsourcing/cassandra/DLPConfigurationItemDTO.java
@@ -40,7 +40,7 @@ public class DLPConfigurationItemDTO {
return new DLPConfigurationItemDTO(
dlpConfiguration.getId().asString(),
dlpConfiguration.getExplanation(),
- dlpConfiguration.getRegexp(),
+ dlpConfiguration.getRegexp().pattern(),
targets.isContentTargeted(),
targets.isSenderTargeted(),
targets.isRecipientTargeted());
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org