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 2016/09/29 10:52:00 UTC
[10/12] james-project git commit: JAMES-1781 Rename PatchedValue to
ValuePatch
JAMES-1781 Rename PatchedValue to ValuePatch
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5cfe856b
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5cfe856b
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5cfe856b
Branch: refs/heads/master
Commit: 5cfe856b391e8188e1a62c68406d0bc5783bfe15
Parents: 560f062
Author: Benoit Tellier <bt...@linagora.com>
Authored: Tue Sep 27 14:35:48 2016 +0200
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Thu Sep 29 12:51:00 2016 +0200
----------------------------------------------------------------------
.../org/apache/james/util/PatchedValue.java | 125 -----------
.../java/org/apache/james/util/ValuePatch.java | 125 +++++++++++
.../org/apache/james/util/PatchedValueTest.java | 220 -------------------
.../org/apache/james/util/ValuePatchTest.java | 220 +++++++++++++++++++
.../vacation/CassandraVacationDAO.java | 10 +-
.../james/jmap/api/vacation/VacationPatch.java | 80 +++----
.../AbstractVacationRepositoryTest.java | 12 +-
.../jmap/api/vacation/VacationPatchTest.java | 66 +++---
.../integration/SetVacationResponseTest.java | 8 +-
.../james/jmap/model/VacationResponse.java | 64 +++---
10 files changed, 464 insertions(+), 466 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/container/util-java8/src/main/java/org/apache/james/util/PatchedValue.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/PatchedValue.java b/server/container/util-java8/src/main/java/org/apache/james/util/PatchedValue.java
deleted file mode 100644
index 438e27a..0000000
--- a/server/container/util-java8/src/main/java/org/apache/james/util/PatchedValue.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy of the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.util;
-
-import java.util.NoSuchElementException;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.function.Function;
-
-import com.google.common.base.Preconditions;
-
-public class PatchedValue<T> {
-
- private enum State {
- KEEP,
- REMOVE,
- MODIFY
- }
-
- public static <T> PatchedValue<T> modifyTo(T value) {
- Preconditions.checkNotNull(value);
- return new PatchedValue<>(value, State.MODIFY);
- }
-
- public static <T> PatchedValue<T> ofNullable(T value) {
- return ofOptional(Optional.ofNullable(value));
- }
-
- public static <T> PatchedValue<T> ofOptional(Optional<T> value) {
- Preconditions.checkNotNull(value);
- return value.map(PatchedValue::modifyTo)
- .orElse(PatchedValue.remove());
- }
-
- public static <T> PatchedValue<T> remove() {
- return new PatchedValue<>(null, State.REMOVE);
- }
-
- public static <T> PatchedValue<T> keep() {
- return new PatchedValue<>(null, State.KEEP);
- }
-
- private final T value;
- private final State state;
-
- private PatchedValue(T value, State state) {
- this.value = value;
- this.state = state;
- }
-
- public boolean isRemoved() {
- return state == State.REMOVE;
- }
-
- public boolean isModified() {
- return state == State.MODIFY;
- }
-
- public boolean isKept() {
- return state == State.KEEP;
- }
-
- public <S> Optional<S> mapNotKeptToOptional(Function<Optional<T>, S> updateTransformation) {
- if (isKept()) {
- return Optional.empty();
- }
- return Optional.of(updateTransformation.apply(Optional.ofNullable(value)));
- }
-
- public T get() {
- if (isModified()) {
- return value;
- } else {
- throw new NoSuchElementException();
- }
- }
-
- public Optional<T> notKeptOrElse(Optional<T> replacement) {
- if (isKept()) {
- return replacement;
- }
- return Optional.ofNullable(value);
- }
-
- public Optional<T> toOptional() {
- return Optional.ofNullable(value);
- }
-
- public T getOrElse(T replacement) {
- return toOptional().orElse(replacement);
- }
-
- @Override
- public boolean equals(Object o) {
- if (o instanceof PatchedValue) {
- PatchedValue<?> that = (PatchedValue<?>) o;
- return Objects.equals(this.value, that.value) &&
- Objects.equals(this.state, that.state);
- } else {
- return false;
- }
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(value, state);
- }
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/container/util-java8/src/main/java/org/apache/james/util/ValuePatch.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/ValuePatch.java b/server/container/util-java8/src/main/java/org/apache/james/util/ValuePatch.java
new file mode 100644
index 0000000..5c3d01a
--- /dev/null
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/ValuePatch.java
@@ -0,0 +1,125 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.util;
+
+import java.util.NoSuchElementException;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.function.Function;
+
+import com.google.common.base.Preconditions;
+
+public class ValuePatch<T> {
+
+ private enum State {
+ KEEP,
+ REMOVE,
+ MODIFY
+ }
+
+ public static <T> ValuePatch<T> modifyTo(T value) {
+ Preconditions.checkNotNull(value);
+ return new ValuePatch<>(value, State.MODIFY);
+ }
+
+ public static <T> ValuePatch<T> ofNullable(T value) {
+ return ofOptional(Optional.ofNullable(value));
+ }
+
+ public static <T> ValuePatch<T> ofOptional(Optional<T> value) {
+ Preconditions.checkNotNull(value);
+ return value.map(ValuePatch::modifyTo)
+ .orElse(ValuePatch.remove());
+ }
+
+ public static <T> ValuePatch<T> remove() {
+ return new ValuePatch<>(null, State.REMOVE);
+ }
+
+ public static <T> ValuePatch<T> keep() {
+ return new ValuePatch<>(null, State.KEEP);
+ }
+
+ private final T value;
+ private final State state;
+
+ private ValuePatch(T value, State state) {
+ this.value = value;
+ this.state = state;
+ }
+
+ public boolean isRemoved() {
+ return state == State.REMOVE;
+ }
+
+ public boolean isModified() {
+ return state == State.MODIFY;
+ }
+
+ public boolean isKept() {
+ return state == State.KEEP;
+ }
+
+ public <S> Optional<S> mapNotKeptToOptional(Function<Optional<T>, S> updateTransformation) {
+ if (isKept()) {
+ return Optional.empty();
+ }
+ return Optional.of(updateTransformation.apply(Optional.ofNullable(value)));
+ }
+
+ public T get() {
+ if (isModified()) {
+ return value;
+ } else {
+ throw new NoSuchElementException();
+ }
+ }
+
+ public Optional<T> notKeptOrElse(Optional<T> replacement) {
+ if (isKept()) {
+ return replacement;
+ }
+ return Optional.ofNullable(value);
+ }
+
+ public Optional<T> toOptional() {
+ return Optional.ofNullable(value);
+ }
+
+ public T getOrElse(T replacement) {
+ return toOptional().orElse(replacement);
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof ValuePatch) {
+ ValuePatch<?> that = (ValuePatch<?>) o;
+ return Objects.equals(this.value, that.value) &&
+ Objects.equals(this.state, that.state);
+ } else {
+ return false;
+ }
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(value, state);
+ }
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/container/util-java8/src/test/java/org/apache/james/util/PatchedValueTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/PatchedValueTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/PatchedValueTest.java
deleted file mode 100644
index 4929f6d..0000000
--- a/server/container/util-java8/src/test/java/org/apache/james/util/PatchedValueTest.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one *
- * or more contributor license agreements. See the NOTICE file *
- * distributed with this work for additional information *
- * regarding copyright ownership. The ASF licenses this file *
- * to you under the Apache License, Version 2.0 (the *
- * "License"); you may not use this file except in compliance *
- * with the License. You may obtain a copy modifyTo the License at *
- * *
- * http://www.apache.org/licenses/LICENSE-2.0 *
- * *
- * Unless required by applicable law or agreed to in writing, *
- * software distributed under the License is distributed on an *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
- * KIND, either express or implied. See the License for the *
- * specific language governing permissions and limitations *
- * under the License. *
- ****************************************************************/
-
-package org.apache.james.util;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatThrownBy;
-
-import java.util.NoSuchElementException;
-import java.util.Optional;
-
-import org.junit.Test;
-
-public class PatchedValueTest {
-
- public static final int REPLACEMENT_VALUE = 24;
- public static final Optional<Integer> REPLACEMENT = Optional.of(REPLACEMENT_VALUE);
- public static final int VALUE = 12;
- public static final Optional<Integer> OPTIONAL_OF_VALUE = Optional.of(VALUE);
-
- @Test
- public void keepShouldProduceKeptValues() {
- assertThat(PatchedValue.<Integer>keep().isKept()).isTrue();
- }
-
- @Test
- public void keepShouldThrowOnGet() {
- assertThatThrownBy(() -> PatchedValue.<Integer>keep().get()).isInstanceOf(NoSuchElementException.class);
- }
-
- @Test
- public void keepShouldNotBeModified() {
- assertThat(PatchedValue.<Integer>keep().isModified()).isFalse();
- }
-
- @Test
- public void keepShouldNotBeRemoved() {
- assertThat(PatchedValue.<Integer>keep().isRemoved()).isFalse();
- }
-
- @Test
- public void removeShouldNotBeKept() {
- assertThat(PatchedValue.<Integer>remove().isKept()).isFalse();
- }
-
- @Test
- public void removeShouldBeRemoved() {
- assertThat(PatchedValue.<Integer>remove().isRemoved()).isTrue();
- }
-
- @Test
- public void removedShouldNotBeModified() {
- assertThat(PatchedValue.<Integer>remove().isModified()).isFalse();
- }
-
- @Test
- public void removeShouldThrowOnGet() {
- assertThatThrownBy(() -> PatchedValue.<Integer>remove().get()).isInstanceOf(NoSuchElementException.class);
- }
-
- @Test
- public void ofNullableShouldBeEquivalentToRemoveWhenNullParameter() {
- assertThat(PatchedValue.<Integer>ofNullable(null)).isEqualTo(PatchedValue.<Integer>remove());
- }
-
- @Test
- public void ofNullableShouldBeEquivalentToModifyWhenNonNullParameter() {
- assertThat(PatchedValue.ofNullable(VALUE)).isEqualTo(PatchedValue.modifyTo(VALUE));
- }
-
- @Test
- public void modifyToShouldNotBeKept() {
- assertThat(PatchedValue.modifyTo(VALUE).isKept()).isFalse();
- }
-
- @Test
- public void modifyToShouldNotBeRemoved() {
- assertThat(PatchedValue.modifyTo(VALUE).isRemoved()).isFalse();
- }
-
- @Test
- public void modifyToShouldBeModified() {
- assertThat(PatchedValue.modifyTo(VALUE).isModified()).isTrue();
- }
-
- @Test
- public void modifyToShouldThrowOnNullValue() {
- assertThatThrownBy(() -> PatchedValue.modifyTo(null)).isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void modifyToShouldBeRetrievedByGet() {
- assertThat(PatchedValue.modifyTo(VALUE).get()).isEqualTo(VALUE);
- }
-
- @Test
- public void ofOptionalShouldThrowOnNullValue() {
- assertThatThrownBy(() -> PatchedValue.ofOptional(null)).isInstanceOf(NullPointerException.class);
- }
-
- @Test
- public void ofOptionalShouldBeEquivalentToModifyToWhenPresent() {
- assertThat(PatchedValue.ofOptional(OPTIONAL_OF_VALUE)).isEqualTo(PatchedValue.modifyTo(VALUE));
- }
-
- @Test
- public void ofOptionalShouldBeEquivalentToRemoveWhenEmpty() {
- assertThat(PatchedValue.ofOptional(Optional.empty())).isEqualTo(PatchedValue.remove());
- }
-
- @Test
- public void notKeptOrElseShouldReturnElseWhenKept() {
- assertThat(PatchedValue.<Integer>keep().notKeptOrElse(REPLACEMENT)).isEqualTo(REPLACEMENT);
- }
-
- @Test
- public void notKeptOrElseShouldReturnEmptyWhenRemoved() {
- assertThat(PatchedValue.<Integer>remove().notKeptOrElse(REPLACEMENT)).isEqualTo(Optional.empty());
- }
-
- @Test
- public void notKeptOrElseShouldReturnOptionalWhenModified() {
- assertThat(PatchedValue.modifyTo(VALUE).notKeptOrElse(REPLACEMENT)).isEqualTo(OPTIONAL_OF_VALUE);
- }
-
- @Test
- public void toOptionalShouldReturnElseWhenKept() {
- assertThat(PatchedValue.<Integer>keep().toOptional()).isEqualTo(Optional.empty());
- }
-
- @Test
- public void toOptionalShouldReturnEmptyWhenRemoved() {
- assertThat(PatchedValue.<Integer>remove().toOptional()).isEqualTo(Optional.empty());
- }
-
- @Test
- public void toOptionalShouldReturnOptionalWhenModified() {
- assertThat(PatchedValue.modifyTo(VALUE).toOptional()).isEqualTo(OPTIONAL_OF_VALUE);
- }
-
- @Test
- public void getOrElseShouldReturnReplacementWhenKept() {
- assertThat(PatchedValue.<Integer>keep().getOrElse(REPLACEMENT_VALUE)).isEqualTo(REPLACEMENT_VALUE);
- }
-
- @Test
- public void getOrElseShouldReturnReplacementWhenRemoved() {
- assertThat(PatchedValue.<Integer>remove().getOrElse(REPLACEMENT_VALUE)).isEqualTo(REPLACEMENT_VALUE);
- }
-
- @Test
- public void getOrElseShouldReturnValueWhenPresent() {
- assertThat(PatchedValue.modifyTo(VALUE).getOrElse(REPLACEMENT_VALUE)).isEqualTo(VALUE);
- }
-
- @Test
- public void getOrElseShouldReturnNullWhenKeptAndNullSpecified() {
- assertThat(PatchedValue.<Integer>keep().getOrElse(null)).isNull();
- }
-
- @Test
- public void getOrElseShouldReturnNullWhenRemovedAndNullSpecified() {
- assertThat(PatchedValue.<Integer>remove().getOrElse(null)).isNull();
- }
-
- @Test
- public void getOrElseShouldReturnValueWhenPresentAndNullSpecified() {
- assertThat(PatchedValue.modifyTo(VALUE).getOrElse(null)).isEqualTo(VALUE);
- }
-
- @Test
- public void mapNotKeptToValueShouldPreserveKept() {
- assertThat(
- PatchedValue.<Integer>keep()
- .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
- .isEmpty();
- }
-
- @Test
- public void mapNotKeptToValueShouldTransformOf() {
- assertThat(
- PatchedValue.modifyTo(VALUE)
- .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
- .contains(VALUE + 1);
- }
-
- @Test
- public void mapNotKeptToValueShouldTransformRemoved() {
- assertThat(
- PatchedValue.<Integer>remove()
- .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
- .contains(REPLACEMENT_VALUE);
- }
-
- @Test
- public void mapNotKeptToValueShouldThrowWhenNull() {
- assertThatThrownBy(
- () -> PatchedValue.modifyTo(12)
- .mapNotKeptToOptional(any -> null)
- .isPresent())
- .isInstanceOf(NullPointerException.class);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/container/util-java8/src/test/java/org/apache/james/util/ValuePatchTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/ValuePatchTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/ValuePatchTest.java
new file mode 100644
index 0000000..ef84393
--- /dev/null
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/ValuePatchTest.java
@@ -0,0 +1,220 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy modifyTo the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.util;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
+
+import java.util.NoSuchElementException;
+import java.util.Optional;
+
+import org.junit.Test;
+
+public class ValuePatchTest {
+
+ public static final int REPLACEMENT_VALUE = 24;
+ public static final Optional<Integer> REPLACEMENT = Optional.of(REPLACEMENT_VALUE);
+ public static final int VALUE = 12;
+ public static final Optional<Integer> OPTIONAL_OF_VALUE = Optional.of(VALUE);
+
+ @Test
+ public void keepShouldProduceKeptValues() {
+ assertThat(ValuePatch.<Integer>keep().isKept()).isTrue();
+ }
+
+ @Test
+ public void keepShouldThrowOnGet() {
+ assertThatThrownBy(() -> ValuePatch.<Integer>keep().get()).isInstanceOf(NoSuchElementException.class);
+ }
+
+ @Test
+ public void keepShouldNotBeModified() {
+ assertThat(ValuePatch.<Integer>keep().isModified()).isFalse();
+ }
+
+ @Test
+ public void keepShouldNotBeRemoved() {
+ assertThat(ValuePatch.<Integer>keep().isRemoved()).isFalse();
+ }
+
+ @Test
+ public void removeShouldNotBeKept() {
+ assertThat(ValuePatch.<Integer>remove().isKept()).isFalse();
+ }
+
+ @Test
+ public void removeShouldBeRemoved() {
+ assertThat(ValuePatch.<Integer>remove().isRemoved()).isTrue();
+ }
+
+ @Test
+ public void removedShouldNotBeModified() {
+ assertThat(ValuePatch.<Integer>remove().isModified()).isFalse();
+ }
+
+ @Test
+ public void removeShouldThrowOnGet() {
+ assertThatThrownBy(() -> ValuePatch.<Integer>remove().get()).isInstanceOf(NoSuchElementException.class);
+ }
+
+ @Test
+ public void ofNullableShouldBeEquivalentToRemoveWhenNullParameter() {
+ assertThat(ValuePatch.<Integer>ofNullable(null)).isEqualTo(ValuePatch.<Integer>remove());
+ }
+
+ @Test
+ public void ofNullableShouldBeEquivalentToModifyWhenNonNullParameter() {
+ assertThat(ValuePatch.ofNullable(VALUE)).isEqualTo(ValuePatch.modifyTo(VALUE));
+ }
+
+ @Test
+ public void modifyToShouldNotBeKept() {
+ assertThat(ValuePatch.modifyTo(VALUE).isKept()).isFalse();
+ }
+
+ @Test
+ public void modifyToShouldNotBeRemoved() {
+ assertThat(ValuePatch.modifyTo(VALUE).isRemoved()).isFalse();
+ }
+
+ @Test
+ public void modifyToShouldBeModified() {
+ assertThat(ValuePatch.modifyTo(VALUE).isModified()).isTrue();
+ }
+
+ @Test
+ public void modifyToShouldThrowOnNullValue() {
+ assertThatThrownBy(() -> ValuePatch.modifyTo(null)).isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void modifyToShouldBeRetrievedByGet() {
+ assertThat(ValuePatch.modifyTo(VALUE).get()).isEqualTo(VALUE);
+ }
+
+ @Test
+ public void ofOptionalShouldThrowOnNullValue() {
+ assertThatThrownBy(() -> ValuePatch.ofOptional(null)).isInstanceOf(NullPointerException.class);
+ }
+
+ @Test
+ public void ofOptionalShouldBeEquivalentToModifyToWhenPresent() {
+ assertThat(ValuePatch.ofOptional(OPTIONAL_OF_VALUE)).isEqualTo(ValuePatch.modifyTo(VALUE));
+ }
+
+ @Test
+ public void ofOptionalShouldBeEquivalentToRemoveWhenEmpty() {
+ assertThat(ValuePatch.ofOptional(Optional.empty())).isEqualTo(ValuePatch.remove());
+ }
+
+ @Test
+ public void notKeptOrElseShouldReturnElseWhenKept() {
+ assertThat(ValuePatch.<Integer>keep().notKeptOrElse(REPLACEMENT)).isEqualTo(REPLACEMENT);
+ }
+
+ @Test
+ public void notKeptOrElseShouldReturnEmptyWhenRemoved() {
+ assertThat(ValuePatch.<Integer>remove().notKeptOrElse(REPLACEMENT)).isEqualTo(Optional.empty());
+ }
+
+ @Test
+ public void notKeptOrElseShouldReturnOptionalWhenModified() {
+ assertThat(ValuePatch.modifyTo(VALUE).notKeptOrElse(REPLACEMENT)).isEqualTo(OPTIONAL_OF_VALUE);
+ }
+
+ @Test
+ public void toOptionalShouldReturnElseWhenKept() {
+ assertThat(ValuePatch.<Integer>keep().toOptional()).isEqualTo(Optional.empty());
+ }
+
+ @Test
+ public void toOptionalShouldReturnEmptyWhenRemoved() {
+ assertThat(ValuePatch.<Integer>remove().toOptional()).isEqualTo(Optional.empty());
+ }
+
+ @Test
+ public void toOptionalShouldReturnOptionalWhenModified() {
+ assertThat(ValuePatch.modifyTo(VALUE).toOptional()).isEqualTo(OPTIONAL_OF_VALUE);
+ }
+
+ @Test
+ public void getOrElseShouldReturnReplacementWhenKept() {
+ assertThat(ValuePatch.<Integer>keep().getOrElse(REPLACEMENT_VALUE)).isEqualTo(REPLACEMENT_VALUE);
+ }
+
+ @Test
+ public void getOrElseShouldReturnReplacementWhenRemoved() {
+ assertThat(ValuePatch.<Integer>remove().getOrElse(REPLACEMENT_VALUE)).isEqualTo(REPLACEMENT_VALUE);
+ }
+
+ @Test
+ public void getOrElseShouldReturnValueWhenPresent() {
+ assertThat(ValuePatch.modifyTo(VALUE).getOrElse(REPLACEMENT_VALUE)).isEqualTo(VALUE);
+ }
+
+ @Test
+ public void getOrElseShouldReturnNullWhenKeptAndNullSpecified() {
+ assertThat(ValuePatch.<Integer>keep().getOrElse(null)).isNull();
+ }
+
+ @Test
+ public void getOrElseShouldReturnNullWhenRemovedAndNullSpecified() {
+ assertThat(ValuePatch.<Integer>remove().getOrElse(null)).isNull();
+ }
+
+ @Test
+ public void getOrElseShouldReturnValueWhenPresentAndNullSpecified() {
+ assertThat(ValuePatch.modifyTo(VALUE).getOrElse(null)).isEqualTo(VALUE);
+ }
+
+ @Test
+ public void mapNotKeptToValueShouldPreserveKept() {
+ assertThat(
+ ValuePatch.<Integer>keep()
+ .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
+ .isEmpty();
+ }
+
+ @Test
+ public void mapNotKeptToValueShouldTransformOf() {
+ assertThat(
+ ValuePatch.modifyTo(VALUE)
+ .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
+ .contains(VALUE + 1);
+ }
+
+ @Test
+ public void mapNotKeptToValueShouldTransformRemoved() {
+ assertThat(
+ ValuePatch.<Integer>remove()
+ .mapNotKeptToOptional(optional -> optional.map(i -> i + 1).orElse(REPLACEMENT_VALUE)))
+ .contains(REPLACEMENT_VALUE);
+ }
+
+ @Test
+ public void mapNotKeptToValueShouldThrowWhenNull() {
+ assertThatThrownBy(
+ () -> ValuePatch.modifyTo(12)
+ .mapNotKeptToOptional(any -> null)
+ .isPresent())
+ .isInstanceOf(NullPointerException.class);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationDAO.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationDAO.java b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationDAO.java
index 2ac0823..6cecbcb 100644
--- a/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationDAO.java
+++ b/server/data/data-jmap-cassandra/src/main/java/org/apache/james/jmap/cassandra/vacation/CassandraVacationDAO.java
@@ -40,7 +40,7 @@ import org.apache.james.jmap.api.vacation.Vacation;
import org.apache.james.jmap.api.vacation.VacationPatch;
import org.apache.james.jmap.cassandra.vacation.tables.CassandraVacationTable;
import org.apache.james.util.FunctionGenerator;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Row;
@@ -113,13 +113,13 @@ public class CassandraVacationDAO {
.apply(baseInsert);
}
- public <T> Function<Insert, Insert> applyPatchForField(String field, PatchedValue<T> patchedValue) {
- return patchedValue.mapNotKeptToOptional(optionalValue -> applyPatchForField(field, optionalValue))
+ public <T> Function<Insert, Insert> applyPatchForField(String field, ValuePatch<T> valuePatch) {
+ return valuePatch.mapNotKeptToOptional(optionalValue -> applyPatchForField(field, optionalValue))
.orElse(Function.identity());
}
- public Function<Insert, Insert> applyPatchForFieldZonedDateTime(String field, PatchedValue<ZonedDateTime> patchedValue) {
- return patchedValue.mapNotKeptToOptional(optionalValue -> applyPatchForField(field, convertToUDTOptional(optionalValue)))
+ public Function<Insert, Insert> applyPatchForFieldZonedDateTime(String field, ValuePatch<ZonedDateTime> valuePatch) {
+ return valuePatch.mapNotKeptToOptional(optionalValue -> applyPatchForField(field, convertToUDTOptional(optionalValue)))
.orElse(Function.identity());
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/vacation/VacationPatch.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/vacation/VacationPatch.java b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/vacation/VacationPatch.java
index 721ab34..6a2cee1 100644
--- a/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/vacation/VacationPatch.java
+++ b/server/data/data-jmap/src/main/java/org/apache/james/jmap/api/vacation/VacationPatch.java
@@ -23,7 +23,7 @@ import java.time.ZonedDateTime;
import java.util.Objects;
import java.util.Optional;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import com.google.common.base.Preconditions;
@@ -35,85 +35,85 @@ public class VacationPatch {
public static Builder builderFrom(Vacation vacation) {
return VacationPatch.builder()
- .subject(PatchedValue.ofOptional(vacation.getSubject()))
- .textBody(PatchedValue.ofOptional(vacation.getTextBody()))
- .htmlBody(PatchedValue.ofOptional(vacation.getHtmlBody()))
- .fromDate(PatchedValue.ofOptional(vacation.getFromDate()))
- .toDate(PatchedValue.ofOptional(vacation.getToDate()))
- .isEnabled(PatchedValue.modifyTo(vacation.isEnabled()));
+ .subject(ValuePatch.ofOptional(vacation.getSubject()))
+ .textBody(ValuePatch.ofOptional(vacation.getTextBody()))
+ .htmlBody(ValuePatch.ofOptional(vacation.getHtmlBody()))
+ .fromDate(ValuePatch.ofOptional(vacation.getFromDate()))
+ .toDate(ValuePatch.ofOptional(vacation.getToDate()))
+ .isEnabled(ValuePatch.modifyTo(vacation.isEnabled()));
}
public static class Builder {
- private PatchedValue<String> subject = PatchedValue.keep();
- private PatchedValue<String> textBody = PatchedValue.keep();
- private PatchedValue<String> htmlBody = PatchedValue.keep();
- private PatchedValue<ZonedDateTime> toDate = PatchedValue.keep();
- private PatchedValue<ZonedDateTime> fromDate = PatchedValue.keep();
- private PatchedValue<Boolean> isEnabled = PatchedValue.keep();
-
- public Builder subject(PatchedValue<String> subject) {
+ private ValuePatch<String> subject = ValuePatch.keep();
+ private ValuePatch<String> textBody = ValuePatch.keep();
+ private ValuePatch<String> htmlBody = ValuePatch.keep();
+ private ValuePatch<ZonedDateTime> toDate = ValuePatch.keep();
+ private ValuePatch<ZonedDateTime> fromDate = ValuePatch.keep();
+ private ValuePatch<Boolean> isEnabled = ValuePatch.keep();
+
+ public Builder subject(ValuePatch<String> subject) {
Preconditions.checkNotNull(subject);
this.subject = subject;
return this;
}
public Builder subject(String subject) {
- this.subject = PatchedValue.modifyTo(subject);
+ this.subject = ValuePatch.modifyTo(subject);
return this;
}
- public Builder textBody(PatchedValue<String> textBody) {
+ public Builder textBody(ValuePatch<String> textBody) {
Preconditions.checkNotNull(textBody);
this.textBody = textBody;
return this;
}
public Builder textBody(String textBody) {
- this.textBody = PatchedValue.modifyTo(textBody);
+ this.textBody = ValuePatch.modifyTo(textBody);
return this;
}
- public Builder htmlBody(PatchedValue<String> htmlBody) {
+ public Builder htmlBody(ValuePatch<String> htmlBody) {
Preconditions.checkNotNull(htmlBody);
this.htmlBody = htmlBody;
return this;
}
public Builder htmlBody(String htmlBody) {
- this.htmlBody = PatchedValue.modifyTo(htmlBody);
+ this.htmlBody = ValuePatch.modifyTo(htmlBody);
return this;
}
- public Builder toDate(PatchedValue<ZonedDateTime> toDate) {
+ public Builder toDate(ValuePatch<ZonedDateTime> toDate) {
Preconditions.checkNotNull(toDate);
this.toDate = toDate;
return this;
}
public Builder toDate(ZonedDateTime toDate) {
- this.toDate = PatchedValue.modifyTo(toDate);
+ this.toDate = ValuePatch.modifyTo(toDate);
return this;
}
- public Builder fromDate(PatchedValue<ZonedDateTime> fromDate) {
+ public Builder fromDate(ValuePatch<ZonedDateTime> fromDate) {
Preconditions.checkNotNull(fromDate);
this.fromDate = fromDate;
return this;
}
public Builder fromDate(ZonedDateTime fromDate) {
- this.fromDate = PatchedValue.modifyTo(fromDate);
+ this.fromDate = ValuePatch.modifyTo(fromDate);
return this;
}
- public Builder isEnabled(PatchedValue<Boolean> isEnabled) {
+ public Builder isEnabled(ValuePatch<Boolean> isEnabled) {
Preconditions.checkNotNull(isEnabled);
this.isEnabled = isEnabled;
return this;
}
public Builder isEnabled(Boolean isEnabled) {
- this.isEnabled = PatchedValue.modifyTo(isEnabled);
+ this.isEnabled = ValuePatch.modifyTo(isEnabled);
return this;
}
@@ -122,15 +122,15 @@ public class VacationPatch {
}
}
- private final PatchedValue<String> subject;
- private final PatchedValue<String> textBody;
- private final PatchedValue<String> htmlBody;
- private final PatchedValue<ZonedDateTime> toDate;
- private final PatchedValue<ZonedDateTime> fromDate;
- private final PatchedValue<Boolean> isEnabled;
+ private final ValuePatch<String> subject;
+ private final ValuePatch<String> textBody;
+ private final ValuePatch<String> htmlBody;
+ private final ValuePatch<ZonedDateTime> toDate;
+ private final ValuePatch<ZonedDateTime> fromDate;
+ private final ValuePatch<Boolean> isEnabled;
- private VacationPatch(PatchedValue<String> subject, PatchedValue<String> textBody, PatchedValue<String> htmlBody,
- PatchedValue<ZonedDateTime> toDate, PatchedValue<ZonedDateTime> fromDate, PatchedValue<Boolean> isEnabled) {
+ private VacationPatch(ValuePatch<String> subject, ValuePatch<String> textBody, ValuePatch<String> htmlBody,
+ ValuePatch<ZonedDateTime> toDate, ValuePatch<ZonedDateTime> fromDate, ValuePatch<Boolean> isEnabled) {
Preconditions.checkState(!isEnabled.isRemoved());
this.subject = subject;
this.textBody = textBody;
@@ -140,27 +140,27 @@ public class VacationPatch {
this.isEnabled = isEnabled;
}
- public PatchedValue<String> getSubject() {
+ public ValuePatch<String> getSubject() {
return subject;
}
- public PatchedValue<String> getTextBody() {
+ public ValuePatch<String> getTextBody() {
return textBody;
}
- public PatchedValue<String> getHtmlBody() {
+ public ValuePatch<String> getHtmlBody() {
return htmlBody;
}
- public PatchedValue<ZonedDateTime> getToDate() {
+ public ValuePatch<ZonedDateTime> getToDate() {
return toDate;
}
- public PatchedValue<ZonedDateTime> getFromDate() {
+ public ValuePatch<ZonedDateTime> getFromDate() {
return fromDate;
}
- public PatchedValue<Boolean> getIsEnabled() {
+ public ValuePatch<Boolean> getIsEnabled() {
return isEnabled;
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/AbstractVacationRepositoryTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/AbstractVacationRepositoryTest.java b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/AbstractVacationRepositoryTest.java
index ef90fb4..3b72f18 100644
--- a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/AbstractVacationRepositoryTest.java
+++ b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/AbstractVacationRepositoryTest.java
@@ -24,7 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat;
import java.time.ZonedDateTime;
import java.util.Optional;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import org.junit.Before;
import org.junit.Test;
@@ -201,7 +201,7 @@ public abstract class AbstractVacationRepositoryTest {
// When
vacationRepository.modifyVacation(ACCOUNT_ID, VacationPatch.builder()
- .subject(PatchedValue.remove())
+ .subject(ValuePatch.remove())
.build())
.join();
@@ -228,7 +228,7 @@ public abstract class AbstractVacationRepositoryTest {
// When
vacationRepository.modifyVacation(ACCOUNT_ID, VacationPatch.builder()
- .textBody(PatchedValue.remove())
+ .textBody(ValuePatch.remove())
.build())
.join();
@@ -255,7 +255,7 @@ public abstract class AbstractVacationRepositoryTest {
// When
vacationRepository.modifyVacation(ACCOUNT_ID, VacationPatch.builder()
- .htmlBody(PatchedValue.remove())
+ .htmlBody(ValuePatch.remove())
.build())
.join();
@@ -282,7 +282,7 @@ public abstract class AbstractVacationRepositoryTest {
// When
vacationRepository.modifyVacation(ACCOUNT_ID, VacationPatch.builder()
- .toDate(PatchedValue.remove())
+ .toDate(ValuePatch.remove())
.build())
.join();
@@ -309,7 +309,7 @@ public abstract class AbstractVacationRepositoryTest {
// When
vacationRepository.modifyVacation(ACCOUNT_ID, VacationPatch.builder()
- .fromDate(PatchedValue.remove())
+ .fromDate(ValuePatch.remove())
.build())
.join();
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/VacationPatchTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/VacationPatchTest.java b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/VacationPatchTest.java
index 13db92a..101e5dd 100644
--- a/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/VacationPatchTest.java
+++ b/server/data/data-jmap/src/test/java/org/apache/james/jmap/api/vacation/VacationPatchTest.java
@@ -25,7 +25,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.time.ZonedDateTime;
import java.util.Optional;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import org.junit.Test;
public class VacationPatchTest {
@@ -44,32 +44,32 @@ public class VacationPatchTest {
@Test
public void fromDateShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().fromDate((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().fromDate((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
public void toDateShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().toDate((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().toDate((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
public void textBodyShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().textBody((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().textBody((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
public void htmlBodyShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().htmlBody((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().htmlBody((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
public void subjectShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().subject((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().subject((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
public void isEnabledShouldThrowNPEOnNullInput() {
- assertThatThrownBy(() -> VacationPatch.builder().isEnabled((PatchedValue) null)).isInstanceOf(NullPointerException.class);
+ assertThatThrownBy(() -> VacationPatch.builder().isEnabled((ValuePatch) null)).isInstanceOf(NullPointerException.class);
}
@Test
@@ -85,7 +85,7 @@ public class VacationPatchTest {
public void isIdentityShouldBeFalseWhenUpdateIsNotEmpty() {
assertThat(
VacationPatch.builder()
- .subject(PatchedValue.modifyTo("any subject"))
+ .subject(ValuePatch.modifyTo("any subject"))
.build()
.isIdentity())
.isFalse();
@@ -93,22 +93,22 @@ public class VacationPatchTest {
@Test
public void builderShouldWellSetFields() {
- PatchedValue<String> subject = PatchedValue.modifyTo("subject");
- PatchedValue<String> htmlBody = PatchedValue.modifyTo("html text");
- PatchedValue<String> textBody = PatchedValue.modifyTo("simple text");
- PatchedValue<Boolean> isEnabled = PatchedValue.modifyTo(true);
+ ValuePatch<String> subject = ValuePatch.modifyTo("subject");
+ ValuePatch<String> htmlBody = ValuePatch.modifyTo("html text");
+ ValuePatch<String> textBody = ValuePatch.modifyTo("simple text");
+ ValuePatch<Boolean> isEnabled = ValuePatch.modifyTo(true);
VacationPatch update = VacationPatch.builder()
- .fromDate(PatchedValue.modifyTo(DATE_2014))
- .toDate(PatchedValue.modifyTo(DATE_2015))
+ .fromDate(ValuePatch.modifyTo(DATE_2014))
+ .toDate(ValuePatch.modifyTo(DATE_2015))
.subject(subject)
.htmlBody(htmlBody)
.textBody(textBody)
.isEnabled(isEnabled)
.build();
- assertThat(update.getFromDate()).isEqualTo(PatchedValue.modifyTo(DATE_2014));
- assertThat(update.getToDate()).isEqualTo(PatchedValue.modifyTo(DATE_2015));
+ assertThat(update.getFromDate()).isEqualTo(ValuePatch.modifyTo(DATE_2014));
+ assertThat(update.getToDate()).isEqualTo(ValuePatch.modifyTo(DATE_2015));
assertThat(update.getSubject()).isEqualTo(subject);
assertThat(update.getHtmlBody()).isEqualTo(htmlBody);
assertThat(update.getTextBody()).isEqualTo(textBody);
@@ -118,7 +118,7 @@ public class VacationPatchTest {
@Test
public void patchVacationShouldUpdateEnabled() {
VacationPatch vacationPatch = VacationPatch.builder()
- .isEnabled(PatchedValue.modifyTo(true))
+ .isEnabled(ValuePatch.modifyTo(true))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -130,7 +130,7 @@ public class VacationPatchTest {
@Test
public void patchVacationShouldUpdateFromDate() {
VacationPatch vacationPatch = VacationPatch.builder()
- .fromDate(PatchedValue.modifyTo(DATE_2014))
+ .fromDate(ValuePatch.modifyTo(DATE_2014))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -143,7 +143,7 @@ public class VacationPatchTest {
@Test
public void patchVacationShouldUpdateToDate() {
VacationPatch vacationPatch = VacationPatch.builder()
- .toDate(PatchedValue.modifyTo(DATE_2017))
+ .toDate(ValuePatch.modifyTo(DATE_2017))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -157,7 +157,7 @@ public class VacationPatchTest {
public void patchVacationShouldUpdateSubject() {
String newSubject = "new subject";
VacationPatch vacationPatch = VacationPatch.builder()
- .subject(PatchedValue.modifyTo(newSubject))
+ .subject(ValuePatch.modifyTo(newSubject))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -171,7 +171,7 @@ public class VacationPatchTest {
public void patchVacationShouldUpdateTextBody() {
String newTextBody = "new text body";
VacationPatch vacationPatch = VacationPatch.builder()
- .textBody(PatchedValue.modifyTo(newTextBody))
+ .textBody(ValuePatch.modifyTo(newTextBody))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -185,7 +185,7 @@ public class VacationPatchTest {
public void patchVacationShouldUpdateHtmlBody() {
String newHtmlBody = "new <b>html</b> body";
VacationPatch vacationPatch = VacationPatch.builder()
- .htmlBody(PatchedValue.modifyTo(newHtmlBody))
+ .htmlBody(ValuePatch.modifyTo(newHtmlBody))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -198,12 +198,12 @@ public class VacationPatchTest {
@Test
public void patchVacationShouldAllowToUpdateAllFieldsAtOnce() {
VacationPatch vacationPatch = VacationPatch.builder()
- .subject(PatchedValue.ofOptional(VACATION.getSubject()))
- .textBody(PatchedValue.ofOptional(VACATION.getTextBody()))
- .htmlBody(PatchedValue.ofOptional(VACATION.getHtmlBody()))
- .fromDate(PatchedValue.ofOptional(VACATION.getFromDate()))
- .toDate(PatchedValue.ofOptional(VACATION.getToDate()))
- .isEnabled(PatchedValue.modifyTo(VACATION.isEnabled()))
+ .subject(ValuePatch.ofOptional(VACATION.getSubject()))
+ .textBody(ValuePatch.ofOptional(VACATION.getTextBody()))
+ .htmlBody(ValuePatch.ofOptional(VACATION.getHtmlBody()))
+ .fromDate(ValuePatch.ofOptional(VACATION.getFromDate()))
+ .toDate(ValuePatch.ofOptional(VACATION.getToDate()))
+ .isEnabled(ValuePatch.modifyTo(VACATION.isEnabled()))
.build();
assertThat(vacationPatch.patch(VacationRepository.DEFAULT_VACATION))
@@ -221,7 +221,7 @@ public class VacationPatchTest {
@Test
public void nullUpdateShouldResetSubject() {
Vacation vacation = VacationPatch.builderFrom(VACATION)
- .subject(PatchedValue.remove())
+ .subject(ValuePatch.remove())
.build()
.patch(VACATION);
@@ -239,7 +239,7 @@ public class VacationPatchTest {
@Test
public void nullUpdateShouldResetText() {
Vacation vacation = VacationPatch.builderFrom(VACATION)
- .textBody(PatchedValue.remove())
+ .textBody(ValuePatch.remove())
.build()
.patch(VACATION);
@@ -257,7 +257,7 @@ public class VacationPatchTest {
@Test
public void nullUpdateShouldResetHtml() {
Vacation vacation = VacationPatch.builderFrom(VACATION)
- .htmlBody(PatchedValue.remove())
+ .htmlBody(ValuePatch.remove())
.build()
.patch(VACATION);
@@ -275,7 +275,7 @@ public class VacationPatchTest {
@Test
public void nullUpdateShouldResetToDate() {
Vacation vacation = VacationPatch.builderFrom(VACATION)
- .toDate(PatchedValue.remove())
+ .toDate(ValuePatch.remove())
.build()
.patch(VACATION);
@@ -293,7 +293,7 @@ public class VacationPatchTest {
@Test
public void nullUpdateShouldResetFromDate() {
Vacation vacation = VacationPatch.builderFrom(VACATION)
- .fromDate(PatchedValue.remove())
+ .fromDate(ValuePatch.remove())
.build()
.patch(VACATION);
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetVacationResponseTest.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetVacationResponseTest.java b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetVacationResponseTest.java
index 64b2bc0..4303e23 100644
--- a/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetVacationResponseTest.java
+++ b/server/protocols/jmap-integration-testing/jmap-integration-testing-common/src/test/java/org/apache/james/jmap/methods/integration/SetVacationResponseTest.java
@@ -34,7 +34,7 @@ import org.apache.james.jmap.api.access.AccessToken;
import org.apache.james.jmap.api.vacation.AccountId;
import org.apache.james.jmap.api.vacation.Vacation;
import org.apache.james.jmap.api.vacation.VacationPatch;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -212,7 +212,7 @@ public abstract class SetVacationResponseTest {
public void setVacationResponseShouldAllowResets() {
jmapServer.serverProbe().modifyVacation(AccountId.fromString(USER),
VacationPatch.builder()
- .textBody(PatchedValue.modifyTo("any value"))
+ .textBody(ValuePatch.modifyTo("any value"))
.build());
String bodyRequest = "[[" +
@@ -250,7 +250,7 @@ public abstract class SetVacationResponseTest {
String subject = "any subject";
jmapServer.serverProbe().modifyVacation(AccountId.fromString(USER),
VacationPatch.builder()
- .textBody(PatchedValue.modifyTo(textBody))
+ .textBody(ValuePatch.modifyTo(textBody))
.build());
String bodyRequest = "[[" +
@@ -290,7 +290,7 @@ public abstract class SetVacationResponseTest {
public void setVacationResponseShouldAllowPartialUpdates() {
jmapServer.serverProbe().modifyVacation(AccountId.fromString(USER),
VacationPatch.builder()
- .textBody(PatchedValue.modifyTo("any value"))
+ .textBody(ValuePatch.modifyTo("any value"))
.build());
String newTextBody = "Awesome text message 2";
http://git-wip-us.apache.org/repos/asf/james-project/blob/5cfe856b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
index fbd8991..37816a0 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/VacationResponse.java
@@ -19,8 +19,6 @@
package org.apache.james.jmap.model;
-import static org.apache.james.jmap.api.vacation.Vacation.DEFAULT_DISABLED;
-
import java.time.ZonedDateTime;
import java.util.Objects;
import java.util.Optional;
@@ -29,7 +27,7 @@ import org.apache.james.jmap.api.vacation.Vacation;
import org.apache.james.jmap.api.vacation.VacationPatch;
import org.apache.james.jmap.json.OptionalZonedDateTimeDeserializer;
import org.apache.james.jmap.json.OptionalZonedDateTimeSerializer;
-import org.apache.james.util.PatchedValue;
+import org.apache.james.util.ValuePatch;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -47,23 +45,23 @@ public class VacationResponse {
@JsonPOJOBuilder(withPrefix = "")
public static class Builder {
- private PatchedValue<String> id = PatchedValue.keep();
- private PatchedValue<Boolean> isEnabled = PatchedValue.keep();
- private PatchedValue<ZonedDateTime> fromDate = PatchedValue.keep();
- private PatchedValue<ZonedDateTime> toDate = PatchedValue.keep();
- private PatchedValue<String> subject = PatchedValue.keep();
- private PatchedValue<String> textBody = PatchedValue.keep();
- private PatchedValue<String> htmlBody = PatchedValue.keep();
+ private ValuePatch<String> id = ValuePatch.keep();
+ private ValuePatch<Boolean> isEnabled = ValuePatch.keep();
+ private ValuePatch<ZonedDateTime> fromDate = ValuePatch.keep();
+ private ValuePatch<ZonedDateTime> toDate = ValuePatch.keep();
+ private ValuePatch<String> subject = ValuePatch.keep();
+ private ValuePatch<String> textBody = ValuePatch.keep();
+ private ValuePatch<String> htmlBody = ValuePatch.keep();
private Optional<Boolean> isActivated = Optional.empty();
public Builder id(String id) {
- this.id = PatchedValue.modifyTo(id);
+ this.id = ValuePatch.modifyTo(id);
return this;
}
@JsonProperty("isEnabled")
public Builder enabled(boolean enabled) {
- isEnabled = PatchedValue.modifyTo(enabled);
+ isEnabled = ValuePatch.modifyTo(enabled);
return this;
}
@@ -81,39 +79,39 @@ public class VacationResponse {
@JsonDeserialize(using = OptionalZonedDateTimeDeserializer.class)
public Builder fromDate(Optional<ZonedDateTime> fromDate) {
- this.fromDate = PatchedValue.ofOptional(fromDate);
+ this.fromDate = ValuePatch.ofOptional(fromDate);
return this;
}
@JsonDeserialize(using = OptionalZonedDateTimeDeserializer.class)
public Builder toDate(Optional<ZonedDateTime> toDate) {
- this.toDate = PatchedValue.ofOptional(toDate);
+ this.toDate = ValuePatch.ofOptional(toDate);
return this;
}
public Builder textBody(Optional<String> textBody) {
- this.textBody = PatchedValue.ofOptional(textBody);
+ this.textBody = ValuePatch.ofOptional(textBody);
return this;
}
public Builder subject(Optional<String> subject) {
- this.subject = PatchedValue.ofOptional(subject);
+ this.subject = ValuePatch.ofOptional(subject);
return this;
}
public Builder htmlBody(Optional<String> htmlBody) {
- this.htmlBody = PatchedValue.ofOptional(htmlBody);
+ this.htmlBody = ValuePatch.ofOptional(htmlBody);
return this;
}
public Builder fromVacation(Vacation vacation) {
- this.id = PatchedValue.modifyTo(Vacation.ID);
- this.isEnabled = PatchedValue.modifyTo(vacation.isEnabled());
- this.fromDate = PatchedValue.ofOptional(vacation.getFromDate());
- this.toDate = PatchedValue.ofOptional(vacation.getToDate());
- this.textBody = PatchedValue.ofOptional(vacation.getTextBody());
- this.subject = PatchedValue.ofOptional(vacation.getSubject());
- this.htmlBody = PatchedValue.ofOptional(vacation.getHtmlBody());
+ this.id = ValuePatch.modifyTo(Vacation.ID);
+ this.isEnabled = ValuePatch.modifyTo(vacation.isEnabled());
+ this.fromDate = ValuePatch.ofOptional(vacation.getFromDate());
+ this.toDate = ValuePatch.ofOptional(vacation.getToDate());
+ this.textBody = ValuePatch.ofOptional(vacation.getTextBody());
+ this.subject = ValuePatch.ofOptional(vacation.getSubject());
+ this.htmlBody = ValuePatch.ofOptional(vacation.getHtmlBody());
return this;
}
@@ -122,17 +120,17 @@ public class VacationResponse {
}
}
- private final PatchedValue<String> id;
- private final PatchedValue<Boolean> isEnabled;
- private final PatchedValue<ZonedDateTime> fromDate;
- private final PatchedValue<ZonedDateTime> toDate;
- private final PatchedValue<String> subject;
- private final PatchedValue<String> textBody;
- private final PatchedValue<String> htmlBody;
+ private final ValuePatch<String> id;
+ private final ValuePatch<Boolean> isEnabled;
+ private final ValuePatch<ZonedDateTime> fromDate;
+ private final ValuePatch<ZonedDateTime> toDate;
+ private final ValuePatch<String> subject;
+ private final ValuePatch<String> textBody;
+ private final ValuePatch<String> htmlBody;
private final Optional<Boolean> isActivated;
- private VacationResponse(PatchedValue<String> id, PatchedValue<Boolean> isEnabled, PatchedValue<ZonedDateTime> fromDate, PatchedValue<ZonedDateTime> toDate,
- PatchedValue<String> textBody, PatchedValue<String> subject, PatchedValue<String> htmlBody, Optional<Boolean> isActivated) {
+ private VacationResponse(ValuePatch<String> id, ValuePatch<Boolean> isEnabled, ValuePatch<ZonedDateTime> fromDate, ValuePatch<ZonedDateTime> toDate,
+ ValuePatch<String> textBody, ValuePatch<String> subject, ValuePatch<String> htmlBody, Optional<Boolean> isActivated) {
this.id = id;
this.isEnabled = isEnabled;
this.fromDate = fromDate;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org