aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/internal/SerializableMatcherDescription.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/junit/internal/SerializableMatcherDescription.java')
-rw-r--r--src/main/java/org/junit/internal/SerializableMatcherDescription.java47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/main/java/org/junit/internal/SerializableMatcherDescription.java b/src/main/java/org/junit/internal/SerializableMatcherDescription.java
deleted file mode 100644
index e036557..0000000
--- a/src/main/java/org/junit/internal/SerializableMatcherDescription.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.junit.internal;
-
-import java.io.Serializable;
-
-import org.hamcrest.BaseMatcher;
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
-import org.hamcrest.StringDescription;
-
-/**
- * This class exists solely to provide a serializable description of a matcher to be serialized as a field in
- * {@link AssumptionViolatedException}. Being a {@link Throwable}, it is required to be {@link Serializable}, but most
- * implementations of {@link Matcher} are not. This class works around that limitation as
- * {@link AssumptionViolatedException} only every uses the description of the {@link Matcher}, while still retaining
- * backwards compatibility with classes compiled against its class signature before 4.14 and/or deserialization of
- * previously serialized instances.
- */
-class SerializableMatcherDescription<T> extends BaseMatcher<T> implements Serializable {
-
- private final String matcherDescription;
-
- private SerializableMatcherDescription(Matcher<T> matcher) {
- matcherDescription = StringDescription.asString(matcher);
- }
-
- public boolean matches(Object o) {
- throw new UnsupportedOperationException("This Matcher implementation only captures the description");
- }
-
- public void describeTo(Description description) {
- description.appendText(matcherDescription);
- }
-
- /**
- * Factory method that checks to see if the matcher is already serializable.
- * @param matcher the matcher to make serializable
- * @return The provided matcher if it is null or already serializable,
- * the SerializableMatcherDescription representation of it if it is not.
- */
- static <T> Matcher<T> asSerializableMatcher(Matcher<T> matcher) {
- if (matcher == null || matcher instanceof Serializable) {
- return matcher;
- } else {
- return new SerializableMatcherDescription<T>(matcher);
- }
- }
-}